40 votes

Utiliser itext pour convertir du HTML en PDF

Est-ce que quelqu'un sait s'il est possible de convertir une page HTML (url) en PDF en utilisant itext? Si la réponse est «non», cela ne pose aucun problème, car je ne vais plus perdre mon temps à essayer de régler le problème et à dépenser de l'argent pour l'une des nombreuses composantes que je sais pouvoir :) Merci d'avance pour vos réponses!

30voto

opensas Points 13527

Je pense que c'est exactement ce que vous cherchez

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

http://code.google.com/p/flying-saucer

Soucoupe volante, le premier objectif est de les rendre conformes aux spécifications XHTML et CSS 2.1 à l'écran comme un composant Swing. Bien qu'il était prévu à l'origine pour le balisage, dans des applications de bureau (des choses comme l'iTunes Music Store), Soucoupe Volante a été étendue avec iText ainsi. De ce fait, il est très facile de rendre XHTML Pdf, ainsi qu'aux images et à l'écran. Soucoupe volante nécessite Java 1.4 ou supérieur.

7voto

Mark Points 457

J'ai fini par utiliser ABCPdf de webSupergoo. Cela fonctionne vraiment bien et pour environ 350 $ cela m'a permis d'économiser des heures et des heures basées sur vos commentaires ci-dessus. Merci encore Daniel et Bratch pour vos commentaires.

5voto

Bratch Points 1531

Il ne semble pas être très bon pour la conversion de HTML.

J'ai testé avec iTextSharp pour un peu, parce que j'ai bien mis en forme de la page HTML que je veux convertir en PDF. J'ai d'abord essayé avec un XmlTextReader et HtmlParser.Analyser, et je suis maintenant essayer avec simpleparser.HTMLWorker. Au début, je pensais que mon PDF est mal formaté en raison de la CSS, mais même sans CSS, il semblait mauvais. J'ai pu reconstruire mon document morceau par morceau et le faire fonctionner avec iTextSharp, mais besoin d'en apprendre davantage sur la façon de le faire. Un autre temporaire option que j'envisage est de disposer d'un utilisateur d'imprimer la page HTML en PDF et de les télécharger sur le site web. C'est quelque chose qui ne change pas très souvent.

Voici une des dernières lien que j'ai trouvé lors de la recherche pour en savoir plus sur cette, http://hamang.net/2008/08/14/html-to-pdf-in-net/

Une recherche sur ce forum pour "HTML": http://www.nabble.com/iTextSharp-f4188.html

Il contient certains intéressant de choses comme de mentionner que HTML to PDF conversion est brut, et que le HTMLWorker classe a été prise d'utiliser des fragments de HTML, mais ne fonctionne pas bien avec les conteneurs imbriqués.

1voto

Jes Points 2078

La réponse à votre question est en fait double. Tout d'abord, vous devez spécifier ce que vous comptez faire avec le rendu HTML: l'enregistrer dans un nouveau fichier PDF, ou de l'utiliser dans un autre contexte de rendu (c'est à dire ajouter un autre document de la production).

Le premier est relativement facile à faire en utilisant la Soucoupe Volante cadre, qui peut être trouvé ici: https://github.com/flyingsaucerproject/flyingsaucer

Ce dernier est en fait un beaucoup plus complète, problème qui doit être classé plus loin. À l'aide de la bibliothèque iText vous ne serez pas en mesure d' (trivialement, au moins) se combinent iText éléments (par exemple, Paragraph, Phrase, Chunk et ainsi de suite) avec le code HTML généré. Vous pouvez pirater votre moyen de sortir de cette aide de l' ContentBytes' addTemplate méthode et de générer le code HTML à ce modèle.

Si vous en revanche voulez timbre le code HTML généré avec quelque chose comme des filigranes, des dates ou le souhaitez, vous pouvez le faire à l'aide de la bibliothèque iText.

Donc la ligne en bas: Vous ne pouvez pas trivialement intégrer le rendu HTML dans d'autres de génération des pdf contextes, mais vous pouvez rendre le code HTML directement sur un disque vierge de document PDF.

-1voto

user979051 Points 513

Utiliser HTMLWorker d'iText

Exemple

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X