GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich HTML-zu-PDF-Konvertierungen automatisieren?

Tut mir leid, diesen alten Beitrag auszugraben, aber er kam bei meiner Suche nach dem besten HTML/PDF-Konvertierungstool zuerst heraus. Unter Linux ist wkhtmltopdf sehr gut (berücksichtigt unter anderem CSS) und GPL.


Aktualisierung 2019-05

Der gesamte Prozess wurde dankenswerterweise von TheCodingMachine in ein Docker-Image gepackt:https://github.com/thecodingmachine/gotenberg

Dies macht die Wartung und Nutzung der Chrome-basierten PDF-Generierung in Produktionsumgebungen wirklich reibungslos und problemlos.

Seit Chrome 59 gibt es einen neuen Headless-Modus. Da alle anderen Lösungen wirklich mit neueren (oder nicht mehr so ​​neuen) CSS-Features wie Flexbox zu kämpfen haben, war dies in meinem Fall die einzige Lösung, um eine ordnungsgemäße PDF-Ausgabe zu erzeugen.

Um ein PDF aus einer lokalen HTML-Datei zu erstellen, verwenden Sie einfach den folgenden Befehl:chrome --headless --disable-gpu --print-to-pdf file:///path/to/myfile.html .

Für Mac OS ersetzen Sie chrome mit /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome .

Der einzige Nachteil, der mir bisher aufgefallen ist, ist, dass Sie (derzeit) das HTML nicht über stdin übergeben können, aber das Erstellen einer temporären Datei ist kein so großes Problem.

Weitere Informationen finden Sie unter https://developers.google.com/web/updates/2017/04/headless-chrome#create_a_pdf_dom

Update:Wie sich herausstellt, werden die Chrome-Jungs höchstwahrscheinlich eine Art Node-Modul für diese Aufgabe bereitstellen, das den Headless-Modus schließlich verwerfen würde (https://bugs.chromium.org/p/chromium/issues/detail?id =719921).

Am besten verwenden Sie den knotenbasierten Ansatz mit dem Puppeteer-Modul, wie unter https://developers.google.com/web/updates/2017/04/headless-chrome#node dokumentiert, und drucken die Seite über den Befehl Page.printToPDF , was auch einige zusätzliche Konfigurationen ermöglicht.

Natürlich können Sie sich auch von jeder anderen Umgebung als dem Knoten (z. B. PHP-Skript) mit dem Websocket der Debug-Konsole verbinden.


HINWEIS:Diese Antwort stammt aus dem Jahr 2008 und ist jetzt wahrscheinlich falsch; Bitte überprüfen Sie die anderen Antworten

PrinceXML ist das beste, das ich je gesehen habe (es parst sowohl normales HTML als auch XML/XHTML). Wie ist es am besten? Nun, es besteht den Acid2-Test, den ich für verdammt beeindruckend hielt

Es ist jedoch ziemlich teuer


WeasyPrint erzeugt ansprechende PDFs mit wählbarem Text und Hyperlinks.

weasyprint input.html output.pdf

Wenn Sie wkhtmltopdf verwenden Probieren Sie stattdessen die folgenden Optionen aus:

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

Linux
  1. Wie parse ich PHP in HTML-Dateien?

  2. Wie kann ich in Ubuntu einen öffentlichen HTML-Ordner erstellen?

  3. Wie kann ich Pip auf Ubuntu 10.04 aktualisieren?

  4. Wie kann ich disk io überwachen?

  5. Wie kann ich ZooKeeper unter Ubuntu stoppen?

Wie aktualisiere ich Google Chrome?

So beschleunigen Sie Google Chrome

So installieren Sie Google Chrome unter Linux Mint 20 / Linux Mint 20.1

So installieren Sie Google Chrome unter Debian 10

So deinstallieren Sie den Chromium-Browser von Ubuntu

Wie kann ich Malware identifizieren, die Chrome-Erweiterungen in Linux enthält?