PDF in Python generieren
Meine bevorzugte Bibliothek ist pdf-reports.
PDF-Berichte mit Python erstellen
Python bietet mit seinen umfangreichen Bibliotheken und Modulen leistungsstarke Tools zur Erstellung professioneller PDF-Berichte. Dieser Leitfaden untersucht verschiedene Methoden, PDF-Dokumente mit Python zu erstellen, und behandelt beliebte Bibliotheken wie ReportLab, FPDF, Xhtml2pdf, WeasyPrint, Jinja2, pdf-reports und PdfKit. Es ist Teil unseres Dokumentations-Tools 2026: Markdown, LaTeX, PDF & Druck-Workflows Hubs.

Warum PDF-Berichte mit Python erstellen?
- Automatisierung: Python-Skripte können die Berichtserstellung automatisieren, wodurch Zeit gespart und menschliche Fehler reduziert werden.
- Anpassbarkeit: Berichte können an spezifische Anforderungen angepasst werden, indem Text, Bilder, Tabellen und Grafiken hinzugefügt werden.
- Konsistenz: Markenidentität wird durch standardisierte Vorlagen über alle Berichte hinweg gewährleistet.
- Vielseitigkeit: Rechnungen, Geschäftsberichte, Datenzusammenfassungen oder jeder andere Dokumententyp können erstellt werden.
Beliebte Python-Bibliotheken zur PDF-Generierung
ReportLab
ReportLab ist eine vielseitige Bibliothek, die es ermöglicht, PDF-Dokumente programmatisch zu erstellen. Sie unterstützt die Hinzufügung von Text, Bildern, Tabellen und Grafiken und ist daher für verschiedene Berichtstypen geeignet.
Vorteile:
- Reichhaltige Funktionspalette
- Hochwertiges API für einfache Verwendung
- Unterstützt erweiterte Funktionen wie Annotationen und interaktive Formulare
Nachteile:
- Steilere Lernkurve im Vergleich zu anderen Bibliotheken
- Weniger intuitives API für einige Aufgaben
Verwendung von ReportLab
Installation: Installieren Sie ReportLab mit pip:
pip install reportlab
Grundkonfiguration:
from reportlab.pdfgen import canvas
c = canvas.Canvas('hello.pdf')
# Text hinzufügen:
python c.drawString(100, 800, "Hello World")
# PDF speichern:
python c.save()
FPDF
FPDF ist eine einfache, aber leistungsstarke PDF-Erstellungsbibliothek, die in reinem Python geschrieben ist. Sie ist ideal, um grundlegende PDF-Dokumente mit minimalem Code zu erstellen.
Vorteile:
- Einfach zu lernen und zu verwenden
- Leichtgewichtig und schnell
- Unterstützt Unicode-Zeichen
Nachteile:
- Eingeschränkte Funktionspalette im Vergleich zu ReportLab
- Weniger Kontrolle über die Platzierung von Elementen auf der Seite
Verwendung von FPDF
Installation: Installieren Sie FPDF mit pip:
pip install fpdf2
Grundkonfiguration:
from fpdf import FPDF pdf = FPDF()
# Text hinzufügen:
python pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.cell(40, 10, 'Hello World')
# PDF speichern:
python pdf.output('hello.pdf', 'F')
Xhtml2pdf
Xhtml2pdf ist ein CSS/HTML zu PDF-Konverter, der ReportLab unter der Haube verwendet. Es ist perfekt, um PDFs aus HTML-Vorlagen zu generieren und somit eine hervorragende Wahl für Web-zu-PDF-Konvertierungen.
Vorteile:
- Konvertiert HTML und CSS in PDF
- Unterstützt komplexe Layouts und Stilisierungen
- Integriert sich gut mit Web-Frameworks wie Django
Nachteile:
- Erfordert Kenntnisse in HTML und CSS
- Vielleicht nicht geeignet für einfache, webunabhängige Berichte
Verwendung von Xhtml2pdf
Installation: Installieren Sie Xhtml2pdf mit pip:
pip install xhtml2pdf
PDF aus HTML generieren: python
from xhtml2pdf import pisa
html = "<h1>Hello World</h1>"
with open('hello.pdf', 'wb') as output_file:
pisa_status = pisa.CreatePDF(html, dest=output_file)
WeasyPrint
WeasyPrint ist eine vielseitige Python-Bibliothek, die es Entwicklern ermöglicht, HTML und CSS in PDF-Dokumente mit hoher Qualität zu konvertieren. Sie ist besonders nützlich, um Berichte, Rechnungen oder andere Dokumente mit präziser Formatierung zu erstellen. Im Folgenden finden Sie mehrere Beispiele, die zeigen, wie WeasyPrint in verschiedenen Szenarien verwendet werden kann.
Funktionen
- Konvertiert HTML und CSS in PDF-Dokumente.
- Verarbeitet dynamische Daten mit Hilfe von Vorlagen-Engines wie Jinja2.
Installation:
pip install weasyprint
Hier ist ein einfaches Beispiel zur Erstellung eines PDFs aus einem HTML-String:
from weasyprint import HTML
html_string = """
<html>
<head><title>Beispiel PDF</title></head>
<body>
<h1>Hallo, WeasyPrint!</h1>
<p>Dies ist ein Beispiel-PDF, das mit WeasyPrint generiert wurde.</p>
</body>
</html>
"""
HTML(string=html_string).write_pdf("sample.pdf")
In diesem Beispiel wird die HTML-Klasse von WeasyPrint verwendet, um einen HTML-String in eine PDF-Datei namens “sample.pdf” zu konvertieren.
HTML aus Dateien laden
Sie können auch HTML-Inhalt direkt aus Dateien laden:
from weasyprint import HTML
# HTML aus einer Datei laden
HTML('sample.html').write_pdf('output.pdf')
Dieser Ansatz ist nützlich, wenn Sie Ihren HTML-Inhalt in einer externen Datei gespeichert haben. CSS-Stilblätter verwenden
WeasyPrint unterstützt die Verwendung von CSS-Stilblättern, um Ihre PDF-Dokumente zu gestalten. So können Sie ein CSS-File anwenden:
from weasyprint import HTML
# HTML und CSS aus Dateien laden
HTML('sample.html').write_pdf('output.pdf', stylesheets=['sample.css'])
Dies ermöglicht komplexere Gestaltung, was es einfacher macht, ansprechende PDFs zu erstellen .
Jinja2
Jinja2 ist ein mächtiger Vorlagen-Engine für Python, der es ermöglicht, dynamischen Inhalt zu generieren, indem Python-Ausdrücke, Bedingungen und Schleifen innerhalb von Vorlagen eingebettet werden. Dieser Leitfaden führt Sie durch verschiedene Beispiele für die Verwendung von Jinja2 in Python, von grundlegenden Variablenersetzungen bis hin zu fortgeschrittenen Funktionen wie Vorlagenvererbung.
Schlüsselmerkmale von Jinja2
- Ein Vorlagen-Engine, der mit WeasyPrint oder ReportLab kombiniert werden kann, um dynamischen HTML-Inhalt zu generieren.
- Ideal, um Daten in vordefinierte Vorlagen einzubetten.
- Installation:
pip install jinja2
siehe Beispiele auf der offiziellen Jinja2-Dokumentationsseite: https://jinja.palletsprojects.com/en/3.0.x/
pdfkit
pdfkit ist eine leistungsstarke Python-Bibliothek, die den Prozess der Konvertierung von HTML-Inhalt in PDF-Dokumente vereinfacht. Es fungiert als Wrapper für die wkhtmltopdf-Utility, die WebKit verwendet, um HTML-Seiten genau in PDF-Format zu rendern. Dieser Leitfaden führt Sie durch verschiedene Beispiele und Anwendungsfälle der Erstellung von PDFs mit pdfkit.
Schlüsselmerkmale
- Ein Python-Wrapper für wkhtmltopdf, der HTML in PDF konvertiert.
- Erfordert eine systemweite Installation von wkhtmltopdf. https://wkhtmltopdf.org/downloads.html
Installation:
# und stellen Sie sicher, dass wkhtmltopdf installiert ist.
Grundlegende Verwendung – Konvertieren eines HTML-Strings in ein PDF
Sie können einen einfachen HTML-String in eine PDF-Datei mit pdfkit.from_string() konvertieren:
import pdfkit
html_sample = """
<html>
<head><title>Beispiel PDF</title></head>
<body>
<h1>Dies ist eine Überschrift</h1>
<p>Erste Zeile.</p>
<p>Zweite Zeile.</p>
<p>Dritte Zeile.</p>
<p>Vierte Zeile.</p>
</body>
</html>
"""
pdfkit.from_string(html_sample, 'output.pdf')
Dies erzeugt eine PDF-Datei namens output.pdf im aktuellen Verzeichnis.
Konvertieren einer lokalen HTML-Datei in ein PDF
Wenn Sie eine HTML-Datei lokal gespeichert haben, verwenden Sie pdfkit.from_file():
import pdfkit
pdfkit.from_file('local.html', 'sample.pdf')
PDF-Berichte-Bibliothek (pdf-reports)
Die Erstellung von PDF-Berichten mit der pdf-reports-Bibliothek in Python kann eine mächtige Methode sein, um professionell aussehende Dokumente aus HTML- oder Pug-Vorlagen zu generieren. Diese Bibliothek nutzt moderne Komponenten über das Semantic UI-Framework und bietet Routinen zur Einbettung von Tabellen, Diagrammen und anderen Elementen in Ihre PDFs.
Die pdf-reports-Bibliothek ist so konzipiert, um visuell ansprechende PDF-Berichte aus HTML- oder Pug-Vorlagen zu erstellen. Sie unterstützt offiziell Python 3.x, kann aber auch unter Python 2.x mit der entsprechenden Version von weasyprint laufen. Dies macht sie zu einem vielseitigen Werkzeug zur programmgesteuerten Erstellung dynamischer und gut strukturierter Dokumente.
Schlüsselmerkmale
- Moderne Komponenten: Nutzt das Semantic UI-Framework für moderne Komponenten.
- Einbettung von Elementen: Ermöglicht die Einbettung von Tabellen, Diagrammen und anderen Elementen in die PDFs.
- Vorlagenunterstützung: Unterstützt HTML- und Pug-Vorlagen für flexible Berichtsgestaltung.
Beispiel für die Verwendung von pdf-reports
Installation:
pip install pdf-reports
Hier ist ein grundlegendes Beispiel, wie die pdf-reports-Bibliothek verwendet werden kann:
from pdf_reports import PDFReport
# Definieren Sie Ihre Vorlagendatei (template.pug)
template = """
doctype html
html
head
title= title
body
h1= title
p Dies ist ein Beispielbericht.
"""
# Erstellen Sie eine PDF-Berichtsinstanz
report = PDFReport(template)
# Setzen Sie den Kontext für die Vorlage
context = {
'title': 'Beispielbericht'
}
# Generieren Sie die PDF
pdf = report.generate(context, output='sample_report.pdf')
Ausblick auf die PDF-Generierung in Python
Python bietet eine Vielzahl leistungsstarker Bibliotheken zur Erstellung von PDF-Berichten. Ob Sie Rechnungen, Geschäftsberichte oder Datenzusammenfassungen erstellen, diese Tools ermöglichen es Ihnen, den Prozess zu automatisieren, Ihre Dokumente anzupassen und die Markenidentität zu gewährleisten. Wählen Sie die Bibliothek, die am besten zu Ihren Anforderungen passt, und beginnen Sie heute mit der Erstellung professioneller PDFs!