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 :
ConvertAsyncprend le HTML sous forme destringet renvoie uneTask<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 unPageSetuppour un autre format. - Les images distantes sont désactivées par défaut.
RemoteImageOptionsles active appel par appel, et refuse quand même par défaut les adresses loopback et privées (AllowPrivateAddressesles autorise).