134 votes

Conversion de fichiers HTML en PDF

J'ai besoin de générer automatiquement un fichier PDF à partir d'un existant (X)HTML-document. Les fichiers d'entrée (rapports) utilisation assez simple, basée sur la table de mise en page, donc la prise en charge de vraiment de fantaisie JavaScript/CSS choses est probablement pas nécessaire.

Comme je suis habitué à travailler en Java, une solution qui peut être utilisé facilement dans un java-projet est préférable. Il a seulement besoin de travailler sur les systèmes windows.

Une façon de le faire qui est faisable, mais ne produit pas de bon de sortie de qualité (au moins hors de la boîte) est à l'aide de CSS2XSLFO, et Apache FOP pour créer des fichiers PDF. Le problème que j'ai rencontré a été que, bien que les feuilles de style CSS attributs sont convertis bien, la table-mise en page est assez foiré, avec le texte qui sort de la cellule du tableau.

J'ai aussi pris un coup d'oeil rapide à Jrex, un Java-API pour utiliser le moteur de rendu Gecko.

Est-il peut-être une façon de saisir le rendu de la page du moteur de rendu d'internet explorer et de l'envoyer au format PDF-Imprimante outil automatiquement? Je n'ai aucune expérience dans le OLE de la programmation sous windows, donc je n'ai aucune idée de ce qui est possible et ce qui ne l'est pas.

Avez-vous une idée?

EDIT: Le FlyingSaucer/iText chose semble très prometteur. Je vais essayer d'aller avec qui.

Merci pour toutes les réponses

76voto

Mark Points 14208

Le projet de rendu XHTML de la soucoupe volante prend en charge la sortie de XHTML au format PDF. Regardez un exemple ici .

51voto

Mic Points 13418

Avez-vous essayé WKHTMLTOPDF?

C'est un simple utilitaire shell, une implémentation open source de WebKit. Les deux sont gratuits.

Nous avons mis un petit tutoriel ici

47voto

fred-o Points 935

Découvrez iText; c'est un pur Java PDF toolkit qui a un support pour la lecture de données à partir de code HTML. Je l'ai utilisé récemment dans un projet quand j'ai besoin d'extraire le contenu de notre CMS et d'exporter des fichiers PDF, et c'était plutôt simple. Le soutien pour les CSS et les balises de style est assez limité, mais il ne le rendu des tables sans aucun problème (je n'ai jamais réussi à définir la largeur des colonnes).

Création d'un fichier PDF à partir de code HTML va quelque chose comme ceci:

Document doc = new Document(PageSize.A4);
PdfWriter.getInstance(doc, out);
doc.open();
HTMLWorker hw = new HTMLWorker(doc);
hw.parse(new StringReader(html));
doc.close();

4voto

Ólafur Waage Points 40104

Si vous avez le financement, rien ne bat Prince XML comme le montre cette vidéo

0voto

PhiLho Points 23458

Si vous regardez la barre latérale de votre question, vous verrez beaucoup de questions connexes ...

Dans votre contexte, la méthode la plus simple pourrait être d’installer un pilote d’impression PDF tel que PDFCreator et d’imprimer simplement la page sur cette sortie.

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