GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu automatizovat převody HTML do PDF?

Omlouvám se, že jsem objevil tento starý příspěvek, ale při hledání nejlepšího nástroje pro převod HTML/PDF se objevil jako první. V Linuxu je wkhtmltopdf velmi dobrý (bere v úvahu mimo jiné CSS) a GPL.


Aktualizace 2019-05

Celý proces byl naštěstí zabalen do obrázku dockeru od TheCodingMachine:https://github.com/thecodingmachine/gotenberg

Díky tomu je údržba a používání generování souborů PDF na bázi chromu v produkčním prostředí opravdu plynulé a bezproblémové.

Od Chrome 59 je nový bezhlavý režim. Protože všechna ostatní řešení skutečně bojují s novějšími (nebo už ne tak novými) funkcemi CSS, jako je flexbox, bylo to v mém případě jediné řešení, jak vytvořit správný výstup PDF.

Chcete-li vytvořit pdf z místního html souboru, použijte následující příkaz:chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html .

Pro Mac OS nahraďte chrome s /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome .

Jedinou nevýhodou, kterou jsem si zatím všiml, je, že (v současné době) nemůžete předat html přes stdin, ale vytvoření dočasného souboru není tak velký problém.

Další informace najdete na https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom

Aktualizace:Jak se ukázalo, chromáci s největší pravděpodobností poskytnou pro tento úkol nějaký modul uzlu, který by nakonec zavrhl bezhlavý režim (https://bugs.chromium.org/p/chromium/issues/detail?id =719921).

Nejlepším řešením by bylo použít přístup založený na uzlech pomocí modulu puppeteer, jak je zdokumentováno na https://developers.google.com/web/updates/2017/04/headless-chrome#node, a vytisknout stránku pomocí příkazu Page.printToPDF , což umožňuje i některé další konfigurace.

Samozřejmě se můžete připojit k websocketu ladicí konzoly z jakéhokoli jiného prostředí než z uzlu (tj. skript PHP).


POZNÁMKA:Tato odpověď je z roku 2008 a pravděpodobně je nyní nesprávná; prosím zkontrolujte ostatní odpovědi

PrinceXML je nejlepší, jaký jsem kdy viděl (analyzuje běžný HTML i XML/XHTML). Jak je to nejlepší? Dobře, prošel testem acid2, o kterém jsem si myslel, že je zatraceně působivý

Je to však poměrně drahé


WeasyPrint vytváří pěkné soubory PDF s volitelným textem a hypertextovými odkazy.

weasyprint input.html output.pdf

Pokud používáte wkhtmltopdf místo toho vyzkoušejte následující možnosti:

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

Linux
  1. Jak analyzovat PHP v html souborech?

  2. Jak poznám, že jsem na obrazovce?

  3. Jak mohu odstranit STAROU historii z Google Chrome?

  1. Jak mohu vytvořit veřejnou složku HTML v Ubuntu?

  2. Jak mohu symbolicky propojit soubor v Linuxu?

  3. Jak mohu zastavit ZooKeeper na Ubuntu?

  1. Jak mohu automatizovat vymazání a resetování domovského adresáře uživatele systému Linux na výchozí?

  2. Jak mohu pozorovat šířku pásma paměti?

  3. Jak mohu upgradovat pip na Ubuntu 10.04?