J'ai besoin de générer automatiquement un fichier PDF à partir d'un document HTML (X) existant. Les fichiers d'entrée (rapports) utilisent une mise en page plutôt simple, basée sur des tableaux, donc la prise en charge de trucs JavaScript / CSS vraiment sophistiqués n'est probablement pas nécessaire.
Comme je suis habitué à travailler en Java, une solution qui peut facilement être utilisée dans un projet java est préférable. Cependant, il ne doit fonctionner que sur les systèmes Windows.
Une façon de le faire qui est faisable, mais qui ne produit pas une sortie de bonne qualité (du moins prête à l' emploi ) consiste à utiliser CSS2XSLFO et Apache FOP pour créer les fichiers PDF. Le problème que j'ai rencontré était que, bien que les attributs CSS soient bien convertis, la mise en page du tableau est assez foirée, avec du texte sortant de la cellule du tableau.
J'ai également jeté un coup d'œil à Jrex, une API Java permettant d'utiliser le moteur de rendu Gecko.
Existe-t-il peut-être un moyen de récupérer la page rendue à partir du moteur de rendu d'Internet Explorer et de l'envoyer automatiquement à un outil d'impression PDF? Je n'ai aucune expérience de la programmation OLE sous Windows, donc je n'ai aucune idée de ce qui est possible et de ce qui ne l'est pas.
Avez-vous une idée?
la source
Réponses:
Le projet de rendu Flying Saucer XHTML prend en charge la sortie de XHTML au format PDF. Jetez un œil à un exemple ici .
la source
Avez-vous essayé WKHTMLTOPDF ?
C'est un simple utilitaire shell, une implémentation open source de WebKit. Les deux sont gratuits.
Nous avons mis en place un petit tutoriel ici
MODIFIER (2017):
Si c'était pour construire quelque chose aujourd'hui, je n'irais plus dans cette voie.
Mais utiliserait plutôt http://pdfkit.org/ .
Probablement le dépouillant de toutes ses dépendances nodejs, pour l'exécuter dans le navigateur.
la source
Découvrez iText ; c'est une boîte à outils Java PDF pure qui prend en charge la lecture de données à partir de HTML. Je l'ai utilisé récemment dans un projet lorsque je devais extraire du contenu de notre CMS et l'exporter sous forme de fichiers PDF, et tout était plutôt simple. La prise en charge des balises CSS et de style est assez limitée, mais elle rend les tableaux sans aucun problème (je n'ai jamais réussi à définir la largeur de la colonne).
La création d'un PDF à partir de HTML ressemble à ceci:
la source
Si vous avez le financement, rien ne vaut Prince XML comme le montre cette vidéo
la source
Voici comment ActivePDF fonctionne , ce qui signifie que vous savez ce que vous obtiendrez et qu'il a en fait un support de style raisonnable.
C'est aussi l'un des rares packages que j'ai trouvés (en regardant il y a quelques années) qui prend en charge les différentes commandes CSS de saut de page.
Malheureusement, le logiciel ActivePDF est très frustrant - puisqu'il doit lancer le navigateur IE en arrière-plan pour les conversions, il peut être assez lent, et il n'est pas particulièrement stable non plus.
Il existe actuellement une nouvelle version en version bêta qui est censée être bien meilleure, mais je n'ai pas vraiment eu l'occasion de l'essayer, donc je ne sais pas à quel point il s'agit d'une amélioration.
la source
Vous pouvez utiliser un firefox sans tête avec une extension. C'est assez ennuyeux de courir mais cela donne de bons résultats.
Consultez cette réponse pour plus d'informations.
la source
Si vous regardez la barre latérale de votre question, vous verrez de nombreuses questions connexes ...
Dans votre contexte, la méthode la plus simple pourrait être d'installer un pilote d'impression PDF comme PDFCreator et d'imprimer simplement la page sur cette sortie.
la source
Amyuni WebkitPDF peut être utilisé avec JNI pour une solution Windows uniquement. Il s'agit d'une bibliothèque de conversion HTML vers PDF / XAML, gratuite pour un usage commercial et non commercial.
Si les fichiers de sortie ne sont pas nécessaires immédiatement, pour une meilleure évolutivité, il peut être préférable d'avoir une file d'attente et quelques processus d'arrière-plan prenant des éléments à partir de là, les convertissant et les stockant ensuite sur la base de données ou le système de fichiers.
la clause de non-responsabilité habituelle s'applique
la source