htmlpdf

HTML zu PDF · CLI

HTML zu PDF mit wkhtmltopdf

wkhtmltopdf ist ein eigenstaendiges Kommandozeilenwerkzeug, das HTML mit einer eingebetteten WebKit-Engine rendert. Es braucht keine Laufzeitumgebung wie Node oder PHP und laeuft als einzelne Binary direkt auf dem Server.

Code-Beispiel

# Installation (Debian/Ubuntu)
# apt-get install wkhtmltopdf

wkhtmltopdf \
  --page-size A4 \
  --margin-top 20mm \
  --margin-bottom 20mm \
  --enable-local-file-access \
  rechnung.html rechnung.pdf

# Aus einer URL
wkhtmltopdf https://example.com/report seite.pdf

Hinweise

wkhtmltopdf ist die aelteste verbreitete Loesung im Feld und basiert auf einer eingefrorenen Qt-WebKit-Engine. Das macht es extrem genuegsam und server-freundlich: eine Binary, kein Browser, schneller Kaltstart. Der Nachteil ist die veraltete Rendering-Engine. Flexbox und CSS-Grid werden nur teilweise oder gar nicht unterstuetzt, weshalb moderne Layouts oft mit Tabellen oder float nachgebaut werden muessen. Das Projekt erhaelt seit einiger Zeit keine aktive Pflege mehr, sodass neue CSS-Features nicht hinzukommen. Trotzdem bleibt es beliebt fuer Rechnungen, Reports und einfache Dokumente, deren Layout man kontrolliert. Praktisch sind die eingebauten Optionen fuer Kopf- und Fusszeilen ueber separate HTML-Dateien sowie automatische Inhaltsverzeichnisse. Wer lokale Bilder oder CSS-Dateien einbindet, muss --enable-local-file-access setzen, sonst werden die Ressourcen aus Sicherheitsgruenden ignoriert.

Anzeige

FAQ

Häufige Fragen

Warum werden meine lokalen Bilder nicht angezeigt?

Aus Sicherheitsgruenden blockiert wkhtmltopdf lokale Dateizugriffe standardmaessig. Setze das Flag --enable-local-file-access, damit Bilder und CSS aus dem Dateisystem geladen werden.

Unterstuetzt wkhtmltopdf CSS Grid?

Nein. Die eingebettete WebKit-Engine ist alt und kennt weder Grid noch vollstaendiges Flexbox. Komplexe Layouts solltest du mit Tabellen oder float aufbauen.

Ohne Code geht es auch: Der HTML-zu-PDF-Converter wandelt direkt im Browser um, ohne Installation und ohne Upload.

Anzeige
Anzeige
Anzeige
Anzeige