Generierung von PDF-Berichten in PHP: Die richtige Bibliothek wählen
Die Erstellung von PDF-Dokumenten ist eine der gefragtesten Aufgaben in der Webentwicklung. Rechnungen, Abrechnungen, statistische Berichte, Preislisten – all dies muss oft dynamisch auf der Serverseite erstellt werden. PHP bietet mehrere ausgereifte Bibliotheken zur PDF-Generierung. In diesem Artikel betrachten wir die drei beliebtesten Werkzeuge: FPDF, TCPDF und Dompdf, und geben praktische Codebeispiele.
1. FPDF – Leicht und schnell, ein Klassiker
FPDF ist eine einfache Bibliothek, die keine externen Abhängigkeiten erfordert. Sie eignet sich ideal für grundlegende Berichte: Text, Tabellen, einfache Bilder. Hauptmerkmale:
- Funktioniert ohne Installation zusätzlicher Erweiterungen (außer dem Standard-GD für Bilder).
- Unterstützt UTF-8 über ein separates Plugin (tFPDF) oder manuelle Schriftkonvertierung.
- Hervorragende Leistung bei einfachen Dokumenten.
Beispiel für die Erstellung eines einfachen PDF-Berichts mit einer Tabelle:
<?phprequire('fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Verkaufsbericht', 0, 1);$pdf->SetFont('Arial', '', 12);
// Tabellenüberschriften$pdf->Cell(40, 10, 'Produkt', 1);$pdf->Cell(30, 10, 'Menge', 1);$pdf->Cell(40, 10, 'Preis', 1);$pdf->Ln();
// Daten$pdf->Cell(40, 10, 'Laptop', 1);$pdf->Cell(30, 10, '5', 1);$pdf->Cell(40, 10, '45000 Rubel', 1);$pdf->Ln();$pdf->Cell(40, 10, 'Maus', 1);$pdf->Cell(30, 10, '10', 1);$pdf->Cell(40, 10, '1200 Rubel', 1);
$pdf->Output('D', 'report.pdf');?>2. TCPDF – Leistungsstarkes Werkzeug für komplexe Berichte
TCPDF ist eine erweiterte Version von FPDF mit Unterstützung für UTF-8, CSS, HTML-Tags, QR-Codes, digitale Signaturen und vieles mehr. Empfohlen für:
- Dokumente mit kyrillischen und anderen nicht-lateinischen Schriften.
- Berichte mit komplexem Layout (Kopf- und Fußzeilen, mehrseitige Tabellen).
- Generierung von PDF/A für die Archivierung.
Beispiel für die Verwendung von HTML-Markup in TCPDF:
<?phprequire_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('Entwickler');$pdf->SetTitle('Komplexer Bericht');
$pdf->AddPage();$html = '<h2>Monatsstatistik</h2><table border="1" cellpadding="5"><tr><th>Parameter</th><th>Wert</th></tr><tr><td>Besucher</td><td>12 450</td></tr><tr><td>Bestellungen</td><td>342</td></tr></table><p>Erstellt <strong>automatisch</strong>.</p>';
$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('stat.pdf', 'I');?>3. Dompdf – Generierung aus HTML/CSS
Dompdf ist eine einzigartige Bibliothek, die PDF aus normalem HTML und CSS rendert. Dies ist die ideale Wahl, wenn Sie bereits ein Berichtslayout haben (z. B. für den Druck aus dem Browser). Unterstützt:
- CSS 2.1 und teilweise CSS 3 (float, position, border-radius).
- Einbetten von Bildern (base64 oder per URL).
- Tabellen, Listen, mehrseitige Dokumente.
Beispiel für die Konvertierung einer HTML-Vorlage in PDF:
<?phprequire 'vendor/autoload.php';
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<html><head> Auch in der Bibliothek
Tower für Rust: Vollständige Anleitung mit Beispielen
HTTP-Client für JavaScript (Node.js): Top-Bibliotheken 2025
Markdown-Verarbeitung in Swift für iOS und macOS: Bibliotheken und Beispiele
Konfiguration von PHP-Anwendungen: Bibliotheken und Werkzeuge für flexible Einstellungen