J'utilise htmldoc depuis un moment, mais j'ai rencontré des limitations assez sérieuses. J'ai besoin de la solution finale pour travailler sur une machine Linux. Je vais appeler cette bibliothèque/utilitaire/application à partir d'une application Perl, donc toutes les interfaces Perl seraient un bonus.Comment automatiser les conversions HTML vers PDF?
Répondre
PrinceXML est le meilleur que j'ai vu (il analyse le HTML standard ainsi que XML/XHTML). Comment est-ce le meilleur? Well, it passes the acid2 test que je pensais était sacrément impressionnant
Il est cependant assez cher
Ce serait exagéré au total, mais vous pouvez télécharger et installer mirth. C'est un moteur de routage de message, mais il a la capacité de convertir html en pdf, de sorte que vous pouvez le configurer pour ramasser un fichier html dans un dossier, convertir en pdf, et déposer le pdf dans le même dossier ou autre. Comme je l'ai dit, overkill, un peu d'une courbe d'apprentissage, mais c'est gratuit, et Java, donc vous pouvez l'exécuter sur Linux si vous le souhaitez. Et tout ce que votre application Perl aurait à faire est de déposer le fichier html dans un fichier.
J'ai fait un peu de googling pour vous et est venu avec deux options. Il y en a peut-être plus, ma stratégie google consistait à essayer "webkit ligne de commande pdf" et "gecko ligne de commande pdf", cherchant essentiellement des programmes en ligne de commande qui intègrent les deux moteurs de rendu open source populaires dans les moteurs de rendu. Voici ce que j'ai trouvé:
Firefox command-line printer - sorties au format PDF et .png
wkpdf - tout cela est pour Mac, il est probablement assez portable.
Désolé pour déterrer ce vieux poste, mais il est sorti d'abord dans ma recherche pour le meilleur outil de conversion HTML/PDF. Sur Linux wkhtmltopdf est très bon (prend en compte CSS, entre autres) et GPL.
Pour soutenir votre point, 1) fonctionne comme un charme 2) utilise le moteur de rendu webkit, et qt qui signifie qu'il peut bénéficier de mises à jour. Bien que le dernier RC ait été libéré fév. 2011. – kommradHomer
excellent logiciel, merci – RockScience
Pour mettre à jour sur le commentaire de @ kommradHomer, le projet est toujours actif; la dernière version stable a été publiée le mois dernier. Il est également disponible dans les dépôts officiels d'Ubuntu, mais au moment de l'écriture quelques versions derrière. – Arild
Vous voudrez peut-être consulter 'Document Conversion Service' par Peernet (au http://www.peernet.com/conversion-software/batch-document-converter/). Cela s'exécute en tant que service sur un ordinateur Windows ou Windows Server. Il ouvre les documents HTML dans un navigateur Web, puis les imprime via un pilote d'impression pour créer des documents PDF, de sorte que le document PDF produit ressemble exactement à l'impression du document HTML depuis le navigateur.
Vous devriez jeter un oeil à http://phantomjs.org/
La conversion peut être fait par un petit script rasterize.js puis émission
phantomjs rasterize.js 'http://en.wikipedia.org/w/index.php?title=Jakarta&printable=yes' jakarta.pdf
WeasyPrint produit de belles PDF avec du texte sélectionnable et hyperliens.
weasyprint input.html output.pdf
Si vous utilisez wkhtmltopdf
à la place, essayez les options suivantes:
wkhtmltopdf --margin-bottom 20mm --margin-top 20mm --minimum-font-size 16 ...
Cela devrait être la réponse choisie, c'est gratuit, open-source, et oui, les résultats sont phénoménaux! Hautement recommandé. – FlorianB
Il y a un nouveau mode sans tête depuis Chrome 59. Comme toutes les autres solutions vraiment du mal avec les nouveaux (ou pas si nouveau plus Les fonctionnalités CSS comme la flexbox, c'était dans mon cas la seule solution pour produire une sortie PDF correcte.Pour créer un fichier pdf à partir d'un fichier html local, utilisez la commande suivante: chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html
.
Pour Mac OS, remplacer chrome
par /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
. Le seul inconvénient que j'ai remarqué jusqu'à présent est que (actuellement) vous ne pouvez pas passer le code HTML via stdin, mais créer un fichier temporaire n'est pas vraiment un problème.
Pour plus d'informations, voir https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom
Mise à jour: Comme il se trouve, les gars chrome seront plus susceptibles de fournir une sorte de module de nœud pour cette tâche, qui finit par désapprouver le mode sans tête (https://bugs.chromium.org/p/chromium/issues/detail?id=719921). La meilleure solution serait d'utiliser l'approche basée sur les nœuds en utilisant le module marionnettiste tel que documenté sous https://developers.google.com/web/updates/2017/04/headless-chrome#node et d'imprimer la page via la commande Page.printToPDF, ce qui permet également une configuration supplémentaire.
Bien sûr, vous pouvez également vous connecter à la socket Web de la console de débogage à partir de n'importe quel environnement autre que le nœud (c'est-à-dire le script PHP).
- 1. Export HTML vers PDF (C++, Windows)
- 2. Contrôle d'impression HTML vers PDF Ajaxian
- 3. Automatiser les polices HTML incorporant le backend PHP
- 4. Commandes HTML en PDF
- 5. Comment automatiser les tests d'installateur
- 6. Comment automatiser les tâches dans Xcode?
- 7. Convertir PDF en HTML
- 8. Comment automatiser la génération de sortie HTML dans Enterprise Architect
- 9. Toutes les bonnes feuilles XSLT pour XML vers PDF?
- 10. Ghostscript Multipage PDF vers PNG
- 11. C# Conversions d'octets
- 12. Comment rendre les conversions de varchar à datetime déterministe?
- 13. Comment puis-je automatiser les tests de migration d'applications Web locales d'IE6 vers IE8?
- 14. Comment automatiser Photoshop?
- 15. Conversions implicites de classe
- 16. conversions tableau Javascript
- 17. Conversions implicites C++
- 18. signé conversions non signées
- 19. Automatiser les commandes de test
- 20. Conversion HTML en PDF (pas PDF en HTML) en utilisant PHP
- 21. SQl RS 2005 - Automatiser l'exportation en pdf après l'entrée du paramètre utilisateur
- 22. Comment automatiser les tests pour les rapports dans SSRS
- 23. Conversion HTML vers PostScript
- 24. Les tables HTML au format PDF en PHP - ni DOMPDF ni html2ps/pdf ne fonctionnent
- 25. Comment exporter vers un fichier PDF dans Crystal Report?
- 26. Comment convertir des documents pdf en fichiers html?
- 27. Conversions de type dynamique C#
- 28. Enregistrer HTML en Pdf ABCPdf 4
- 29. pdf à la conversion html en php
- 30. Automatiser Virtual PC 2007 avec PowerShell?
J'ai eu le même problème. J'ai récemment évalué Prince XML et je peux garantir qu'il s'agit d'une application GRAVE. La vitesse et la qualité de la sortie sont tout simplement incroyables. – cletus
Pourquoi payer des milliers de dollars quand un logiciel libre et open-source qui passe aussi le test Acid 2 est disponible? http://weasyprint.readthedocs.io WeasyPrint fortement recommandé. Des résultats phénoménaux. – FlorianB