Generierung von PDF-Berichten in PHP: Überblick über Bibliotheken und Beispiele

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

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>

Empfehlungen