Convertir HTML en PDF en C#

HtmlToPdfConverter transforme du HTML en PDF sans navigateur : il construit un document Word et rend celui-ci. Ce qui passe, c'est ce que Word sait exprimer, donc le texte, les tableaux, les listes et les images survivent, et les mises en page flexbox et grid non.

using DocToolkit;

string html = "<h1>Invoice 2026-114</h1><p>Due on receipt</p>";
byte[] pdf = await HtmlToPdfConverter.ConvertAsync(html);
File.WriteAllBytes("output.pdf", pdf);

Ce qu'il faut

  • Aucun navigateur, headless ou non.
  • Aucune installation d'Office, et pas de LibreOffice.
  • Aucun fichier natif : uniquement du code managé.
  • Aucun réseau à l'exécution, sauf si vous le demandez.

Bon à savoir

  • Asynchrone : ConvertAsync prend le HTML sous forme de string et renvoie une Task<byte[]>.
  • Flexbox, grid, les floats et le positionnement absolu ne sont pas appliqués, et les fonctionnalités non prises en charge sont ignorées sans avertissement. Le PDF reste valide dans tous les cas.
  • A4 par défaut ; ConvertAsync(html, page) prend un PageSetup pour un autre format.
  • Les images distantes sont désactivées par défaut. RemoteImageOptions les active appel par appel, et refuse quand même par défaut les adresses loopback et privées (AllowPrivateAddresses les autorise).

Installation

dotnet add package Ank.DocToolkit

NuGetDocumentationGitHub