GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je automatiser les conversions HTML vers PDF ?

Désolé de déterrer ce vieux post, mais il est sorti premier dans ma recherche du meilleur outil de conversion HTML/PDF. Sous Linux wkhtmltopdf est très bon (prend en compte CSS, entre autres) et GPL.


Mise à jour 2019-05

L'ensemble du processus a heureusement été emballé dans une image docker par TheCodingMachine :https://github.com/thecodingmachine/gotenberg

Cela rend la maintenance et l'utilisation de la génération de PDF basée sur Chrome dans les environnements de production vraiment fluides et sans tracas.

Il y a un nouveau mode sans tête depuis Chrome 59. Comme toutes les autres solutions ont vraiment du mal avec des fonctionnalités CSS plus récentes (ou plus si nouvelles) comme flexbox, c'était dans mon cas la seule solution pour produire une sortie PDF correcte.

Pour créer un pdf à partir d'un fichier html local, utilisez simplement la commande suivante :chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html .

Pour Mac OS, remplacez chrome avec /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 transmettre le code HTML via stdin, mais la création d'un fichier temporaire n'est pas vraiment un problème.

Pour plus d'informations, consultez https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom

Mise à jour :Il s'avère que les gars de Chrome fourniront très probablement une sorte de module de nœud pour cette tâche, ce qui finira par déprécier le mode sans tête (https://bugs.chromium.org/p/chromium/issues/detail?id =719921).

Le mieux serait d'utiliser l'approche basée sur les nœuds en utilisant le puppeteermodule comme 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 au socket Web de la console de débogage à partir de n'importe quel autre environnement que le nœud (c'est-à-dire le script PHP).


REMARQUE :cette réponse date de 2008 et est probablement maintenant incorrecte ; merci de vérifier les autres réponses

PrinceXML est le meilleur que j'ai vu (il analyse le HTML normal ainsi que le XML/XHTML). Comment est-ce le meilleur ? Eh bien, il passe le test acid2 que j'ai trouvé très impressionnant

C'est cependant assez cher


WeasyPrint produit de beaux PDF avec du texte et des hyperliens sélectionnables.

weasyprint input.html output.pdf

Si vous utilisez wkhtmltopdf essayez plutôt les options suivantes :

wkhtmltopdf --margin-bottom 20mm --margin-top 20mm --minimum-font-size 16 ...

Linux
  1. Comment puis-je créer un dossier HTML public dans Ubuntu ?

  2. Comment puis-je lier symboliquement un fichier sous Linux?

  3. Comment puis-je savoir si je suis dans un écran ?

  4. Comment observer la bande passante mémoire ?

  5. Comment puis-je surveiller le disque io ?

Comment mettre à jour Google Chrome ?

Comment accélérer Google Chrome

Comment installer Google Chrome sur Linux Mint 20 / Linux Mint 20.1

Comment installer Google Chrome sur Debian 10

Comment désinstaller le navigateur chrome d'Ubuntu

Comment puis-je identifier les logiciels malveillants contenant des extensions Chrome sous Linux ?