pdfkit – PDF aus HTML generieren mit Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist PDFKit für Python?

PDFKit ist eine leistungsstarke Python-Bibliothek, die als Wrapper für das Tool wkhtmltopdf fungiert. Dieses nutzt die WebKit-Engine, um HTML-Dokumente in PDF-Dateien zu konvertieren. Mit dieser Bibliothek können Entwickler professionelle PDF-Dokumente erstellen, die komplexe Layouts, moderne CSS-Stile, eingebettete Schriftarten, SVG-Grafiken und sogar JavaScript originalgetreu bewahren.

Der Hauptvorteil von PDFKit liegt darin, dass Sie vertraute Webtechnologien (HTML, CSS) für die Dokumentenerstellung nutzen können, die dann mit hoher Renderqualität in PDF umgewandelt werden. Damit ist es das ideale Werkzeug für die Erstellung von Berichten, Rechnungen, Tickets, Zertifikaten und anderen Dokumenten mit dynamischem Inhalt.

Funktionen der PDFKit-Bibliothek

Unterstützte Technologien

  • Modernes HTML5 und CSS3
  • Bootstrap, Tailwind CSS und andere CSS-Frameworks
  • SVG-Grafiken und Webschriften
  • Tabellen mit komplexer Formatierung
  • Flexbox- und Grid-Layouts
  • CSS Media Queries
  • Basisunterstützung für JavaScript

Datenquellen für die Konvertierung

PDFKit unterstützt die Konvertierung aus drei Hauptquellen:

  • URLs von Webseiten
  • Lokale HTML-Dateien
  • HTML-Strings im Arbeitsspeicher der Anwendung

Installation und Einrichtung

Installation der Python-Bibliothek

pip install pdfkit

Installation von wkhtmltopdf

Ubuntu/Debian:

sudo apt update
sudo apt install wkhtmltopdf

macOS (via Homebrew):

brew install --cask wkhtmltopdf

Windows: Laden Sie die Installationsdatei von der offiziellen Website herunter: https://wkhtmltopdf.org/downloads.html. Es sind Versionen für Windows Vista und höher verfügbar, sowohl als 32-Bit- als auch als 64-Bit-Varianten.

CentOS/RHEL/Amazon Linux:

# Für CentOS 7
sudo yum install wkhtmltopdf

# Für neuere Versionen
sudo dnf install wkhtmltopdf

Installation überprüfen

Stellen Sie nach der Installation sicher, dass wkhtmltopdf im System verfügbar ist:

wkhtmltopdf --version

Wenn der Befehl nicht gefunden wird, müssen Sie den Pfad zur ausführbaren Datei im Python-Code konfigurieren.

Wichtige Methoden und Funktionen

PDF aus verschiedenen Quellen erstellen

import pdfkit

# Aus einer URL
pdfkit.from_url("https://example.com", "output.pdf")

# Aus einer HTML-Datei
pdfkit.from_file("template.html", "output.pdf")

# Aus einem HTML-String
html_content = "<h1>Überschrift</h1><p>Dokumentinhalt</p>"
pdfkit.from_string(html_content, "output.pdf")

Pfad zu wkhtmltopdf konfigurieren

Falls wkhtmltopdf nicht in der Systemvariablen PATH ist, können Sie den Pfad manuell angeben:

config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(html_content, "output.pdf", configuration=config)

PDF im Arbeitsspeicher generieren

Für Webanwendungen und APIs ist es oft nötig, das PDF als Byte-Objekt zu erhalten:

# Gibt PDF als Bytes zurück
pdf_bytes = pdfkit.from_string(html_content, False)

# Kann über eine HTTP-Antwort gesendet werden
from flask import Response
return Response(pdf_bytes, mimetype='application/pdf')

Generierungsparameter anpassen

Grundlegende Formatierungsoptionen

options = {
    'page-size': 'A4',
    'margin-top': '0.75in',
    'margin-right': '0.75in',
    'margin-bottom': '0.75in',
    'margin-left': '0.75in',
    'encoding': "UTF-8",
    'no-outline':                    

Empfehlungen