Rendu PDF dans iTextSharp à partir de HTML avec CSS

Toute idée sur le rendu d’un fichier PDF à l’aide de iTextSharp afin que la page s’affiche à l’aide de CSS. Le css peut soit être incorporé dans le HTML, soit transmis séparément.

Des exemples de code spécifiques seraient grandement appréciés.

De plus, j’aimerais vraiment restr avec iTextSharp, bien que si vous avez des suggestions pour autre chose, il faut que ce soit gratuit, à source ouverte, et que vous disposiez d’une licence permettant de l’utiliser dans des logiciels commerciaux.

Ce n’est pas possible pour le moment mais rien ne vous empêche de démarrer un projet open-source qui le fera. Je pourrais en commencer un, parce que j’en ai besoin aussi!

Fondamentalement, vous aurez besoin d’un parsingur qui convertira les balises HTML et CSS en classes iTextSharp. Donc,

devenu iTextSharp.SimpleTable et ainsi de suite.

Il serait facile de créer un prototype capable de fonctionner avec un sous-ensemble limité de HTML et de CSS.

Mise à jour: Jusqu’à ce que cela soit possible, voici comment je l’ai résolu temporairement pour moi-même. Seulement deux étapes:

  • Demandez à vos utilisateurs de télécharger une application open source appelée PDFCreator
  • Assurez-vous que tous vos rapports html sont faciles à imprimer en fournissant des feuilles de style à imprimer.

    Si certains de vos rapports de plusieurs pages doivent avoir des en-têtes sur chaque page, configurez-les dans la balise THEAD html.

Désormais, les utilisateurs pourront imprimer facilement et s’ils choisissent le pilote d’imprimante PDFCreator, ils pourront même obtenir un rapport au format PDF (il existe d’autres pilotes d’imprimante PDF mais celui-ci est gratuit et à code source ouvert).

De plus, je sais que le format HTML n’est pas aussi flexible que le format PDF, mais il pourrait être suffisant. Je faisais quelques tests avec de vrais utilisateurs et ils l’aimaient vraiment, car non seulement ils peuvent maintenant imprimer n’importe quoi au format PDF (même au-delà de mon application), mais leur stream de travail est plus rapide, car ils ne doivent pas télécharger et attendre l’ouverture de leur lecteur de PDF up. ils ne font qu’imprimer (ou exporter au format pdf) ce qu’ils voient sur le site Web directement à partir de leur navigateur Web … ce qui est logique.

Essayez WKHTMLTOPDF.

C’est une implémentation open source de webkit. Les deux sont gratuits.

Nous avons mis un petit tutoriel ici

  List getListWeeks(int annee) { List weeks = new List(); DateTime beginDate = new DateTime(annee, 1, 1); DateTime endDate = new DateTime(annee, 12, 31); int nb =(int)beginDate.DayOfWeek; DateTime monday = beginDate.AddDays(-nb+1); ; DateTime saturday = monday.AddDays(6); while (monday < endDate) { weeks.Add(new DateTime[] { monday, saturday }); monday = monday.AddDays(7); saturday = monday.AddDays(6); } return weeks; }