web-dev-qa-db-fra.com

Render PDF dans ITEXTSHARP de HTML avec CSS

Une idée de la façon de rendre A PDF à l'aide d'ITEXTSTHARP de sorte qu'il rend la page à l'aide de CSS. Le CSS peut être incorporé dans le HTML ou réussi séparément, je ne me soucie pas vraiment, je veux juste Pour travailler.

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

De plus, j'aimerais vraiment coller avec ItextShaarp, bien que si vous avez des suggestions pour autre chose, il doit être libre, open source et disposer d'une licence qui le permet de l'utiliser dans des logiciels commerciaux.

21
Adam Haile

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 en réalité en commencer un, parce que j'en ai besoin aussi!

Fondamentalement, vous aurez besoin d'un analyseur qui convertira le balisage HTML et CSS en classes ITEXTSHARP. Donc, <table> Becames iTextSharp.SimpleTable Et ainsi de suite.

Il serait facile de proposer un prototype qui serait capable de travailler avec un sous-ensemble HTML et CSS limité.

MISE À JOUR: Jusqu'au moment où cela sera possible, voici comment je l'ai résolu temporairement pour moi-même. Seulement deux étapes:

  • Dites à vos utilisateurs de télécharger l'application open-source appelée PDFCreator
  • Faites toutes vos rapports HTML imprimables sympathiques en fournissant des feuilles de style pour imprimer.

    Si certaines de vos rapports de plusieurs pages doivent avoir des en-têtes sur chaque page, configurez-les dans THEAD TAG HTML.

Désormais, les utilisateurs seront en mesure d'imprimer et si elles choisissent pilote d'imprimante PDFCreator, ils vont même pouvoir obtenir le rapport dans PDF le format (il y a d'autres pilotes d'imprimante pdf mais celui-ci est gratuit et open-source).

Je sais aussi HTML n'est pas aussi flexible que PDF mais il pourrait être assez bon. Je faisais des tests avec de vrais utilisateurs et ils l'aiment réellement parce que non seulement ils peuvent désormais imprimer quelque chose à PDF (même au-delà de mon application), leur flux de travail est également plus rapide car ils n'ont pas à télécharger et à attendre Leur lecteur PDF s'ouvre. Ils viennent d'imprimer (ou d'exporter vers pdf) ce qu'ils voient sur le site Web directement depuis leur webbrowser ... une sorte de sens.

9
lubos hasko

Essayez wkhtmltopdf.

C'est une implémentation open source de WebKit. Les deux sont gratuits.

Nous avons défini un petit tutoriel ici

6
Mic
 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;
        }
2
Noureddine HALA