Rendre PDF en iTextSharp à partir de HTML avec CSS
N'importe quelle idée comment rendre un PDF en utilisant iTextSharp de sorte qu'il rend la page en utilisant CSS. Le css peut être intégré dans le HTML ou passé dans séparément, Je ne m'en soucie pas vraiment, je veux juste que ça marche.
exemples de codes spécifiques seraient grandement apprécié.
aussi, je voudrais vraiment s'en tenir à iTextSharp, bien que si vous avez des suggestions pour quelque chose d'autre, il faut que ce soit gratuit, open source, et avoir un licence qui permet de l'utiliser dans les logiciels commerciaux.
3 réponses
ce n'est pas possible en ce moment mais rien ne vous empêche de démarrer un projet open-source qui le fera. Je pourrais effectivement commencer, parce que j'en ai besoin aussi!
fondamentalement, vous aurez besoin de parser qui convertira html et CSS markup en classes iTextSharp. Donc <table>
devient iTextSharp.SimpleTable
et ainsi de suite.
il serait facile de trouver un prototype qui pourrait fonctionner avec un sous-ensemble html et css limité.
mise à Jour: Jusqu'au moment où ce sera possible, c'est comment j'ai résolu temporairement pour moi. Seulement deux étapes:
- dites à vos utilisateurs de télécharger l'application open-source appelée PDFCreator
-
faites en sorte que tous vos rapports html soient faciles à imprimer en fournissant des feuilles de style.
si certains de vos rapports de plusieurs pages ont besoin pour avoir des en-têtes sur chaque page, configurez-les dans la balise HTML de THEAD.
désormais, les utilisateurs pourront imprimer et s'ils choisissent le pilote D'imprimante PDFCreator, ils pourront même obtenir le rapport en format PDF (il y a d'autres pilotes d'imprimante pdf, mais celui-ci est gratuit et open-source).
aussi je sais que HTML n'est pas aussi flexible que PDF mais il pourrait être assez bon. J'ai fait quelques tests avec de vrais utilisateurs et ils en fait, il aime parce que non seulement ils peuvent maintenant imprimer n'importe quoi au PDF (même au-delà de mon application), aussi leur flux de travail est plus rapide parce qu'ils n'ont pas à télécharger et attendre jusqu'à ce que leur lecteur pdf s'ouvre. ils impriment simplement (ou exportent vers pdf) ce qu'ils voient sur le site Web directement à partir de leur webbrowser... type de sens.
List<DateTime[]> getListWeeks(int annee)
{
List<DateTime[]> weeks = new List<DateTime[]>();
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;
}