Rendu HTML vers PDF Open Source avec prise en charge CSS complète

J’ai demandé à iTextSharp de rendre un PDF à partir de HTML et une feuille CSS avant , mais il semble que ce ne soit pas possible … Donc je suppose que je vais devoir essayer autre chose.

Existe-t-il une bibliothèque open source .NET / C # capable de prendre HTML et CSS comme entrée et de la rendre correctement?

Je dois réitérer … la bibliothèque DOIT être libre et de préférence quelque chose avec une licence assez libérale. Je travaille avec pratiquement pas de budget ici.

Je l’ai toujours utilisé sur la ligne de commande et non comme une bibliothèque, mais HTMLDOC me donne d’excellents résultats, et il gère au moins un peu de CSS (je ne pouvais pas voir combien).

Voici un exemple de ligne de commande

htmldoc --webpage -t pdf --size letter --fontsize 10pt index.html > index.pdf 

Cet outil en ligne de commande est le métier! https://wkhtmltopdf.org/

Il utilise le moteur de rendu webkit (utilisé dans safari et KDE), je l’ai testé sur certains sites complexes et c’était de loin meilleur que tout autre outil.

Est-ce que tu vois :

Ils ressemblent à PrinceXML

Ce n’est pas une source ouverte, mais vous pouvez au moins obtenir une licence d’utilisation personnelle gratuite pour Prince , ce qui fait vraiment un bon travail.

Vous pouvez essayer mon wrapper wkhtmltopdf: https://github.com/pruiz/WkHtmlToXSharp 😉

Nous utilisons depuis quelques années html2pdf pour générer des documents PDF hautement stylisés avec des fonts personnalisées. C’est un peu difficile à mettre en place, mais une fois que c’est fait, ça marche très bien … et c’est gratuit.

http://www.tufat.com/s_html2ps_html2pdf.htm

Essayez ABCpdf à partir de webSupergoo. C’est une solution commerciale, pas open source, mais l’édition standard peut être obtenue gratuitement et fera ce que vous demandez.

ABCpdf supporte entièrement HTML et CSS, les formulaires en direct et les liens en direct. Il utilise également Microsoft XML Core Services (MSXML) lors du rendu. Les résultats doivent donc correspondre exactement à ceux d’Internet Explorer.

La démo en ligne peut être utilisée pour tester le rendu HTML vers PDF sans avoir à installer de logiciel. Voir: http://www.abcpdfeditor.com/

L’exemple de code C # suivant montre comment afficher un document HTML d’une seule page.

 Doc theDoc = new Doc(); theDoc.AddImageUrl("http://www.example.com/"); theDoc.Save("htmlimport.pdf"); theDoc.Clear(); 

Pour rendre plusieurs pages, vous aurez besoin de la fonction AddImageToChain, documentée ici: http://www.websupergoo.com/helppdf7net/source/5-abcpdf6/doc/1-methods/addimagetochain.htm