Generierung von PDF-Berichten in PHP: Vollständiger Leitfaden für Entwickler
Die Erstellung von PDF-Dokumenten ist eine der gefragtesten Aufgaben in der Webentwicklung. Berichte, Rechnungen, Zertifikate, Lernmaterialien – all dies muss oft dynamisch auf der Serverseite generiert werden. PHP bietet mehrere leistungsstarke Bibliotheken, mit denen Sie PDFs jeder Komplexität erstellen können. In diesem Artikel betrachten wir vier beliebte Tools: TCPDF, FPDF, Dompdf und mPDF, und geben praktische Codebeispiele.
Warum PDF-Generierung in PHP?
PDF (Portable Document Format) ist ein universelles Format, das auf allen Geräten korrekt angezeigt wird. In Bildungsprojekten wie PythonLib können PDF-Berichte verwendet werden für:
- Export von Testergebnissen und Prüfungen
- Erstellung von Kursabschlusszertifikaten
- Generierung von Lehrmaterialien und Zusammenfassungen
- Erstellung statistischer Berichte für Lehrkräfte
Übersicht der beliebten Bibliotheken
1. TCPDF
TCPDF ist eine der leistungsstärksten und ausgereiftesten Bibliotheken für die Arbeit mit PDF in PHP. Sie unterstützt:
- Vollen Funktionsumfang von PDF 1.7
- Einbettung von Schriftarten (einschließlich Unicode und Kyrillisch)
- Zeichnen von Diagrammen, Tabellen, QR-Codes
- Unterstützung von CSS (eingeschränkt)
Beispiel für die grundlegende Verwendung:
require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('Entwickler');$pdf->SetTitle('Testbericht');
$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, 'Hallo Welt! Dies ist ein PDF-Bericht.', 0, 1, 'C');
$pdf->Output('report.pdf', 'I');2. FPDF
FPDF ist eine leichtgewichtige und schnelle Bibliothek, ideal für einfache Dokumente. Ihre Hauptmerkmale:
- Keine externen Abhängigkeiten erforderlich
- Einfache API zum Hinzufügen von Text, Bildern und Linien
- Unterstützung von UTF-8 über zusätzliche Pakete
Beispiel für die Erstellung einer Tabelle:
require('fpdf/fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Name', 1);$pdf->Cell(40, 10, 'Punkte', 1);$pdf->Ln();$pdf->SetFont('Arial', '', 12);$pdf->Cell(40, 10, 'Ivan', 1);$pdf->Cell(40, 10, '95', 1);$pdf->Output();3. Dompdf
Dompdf ermöglicht die Konvertierung von HTML+CSS in PDF. Dies ist praktisch, wenn Sie bereits Template-Engines (z. B. Twig) verwenden. Funktionen:
- Unterstützung von CSS 2.1 und teilweise CSS3
- Arbeit mit Bildern und Schriftarten
- Einfache Integration in Webanwendungen
Beispiel mit HTML-Vorlage:
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<h2 style="color:blue;">Bericht zum Python-Kurs</h2> <p>Student: Alexey, Ergebnis: 87%</p>';$dompdf->loadHtml($html, 'UTF-8');$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('report.pdf');4. mPDF
mPDF ist eine weitere Bibliothek zur Konvertierung von HTML in PDF. Sie unterstützt komplexe Stile, Unicode sowie:
- Automatische Erstellung eines Inhaltsverzeichnisses
- Wasserzeichen und Hintergründe
- Arbeit mit großen Datenmengen
Beispiel mit Stylesheet:
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \\Mpdf\\Mpdf();$mpdf->WriteHTML('<h1>Statistik</h1> Auch in der Bibliothek
Datenvalidierung in Rust: Bibliotheken und Ansätze für zuverlässigen Code
PHP-DI für PHP: Komplettguide mit Beispielen
GraphQL-Bibliothek TypeScript: Vollständiger Leitfaden zu den Werkzeugen
Knex.js für JavaScript (Node.js): Komplettes Tutorial mit Beispielen
Datenvalidierung in PHP: Vollständiger Leitfaden zu Tools und Bibliotheken