DomPDF für PHP: Vollständiges Tutorial mit Praxisbeispielen

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

Einführung in DomPDF: Was ist das und wozu braucht man es?

DomPDF ist eine leistungsstarke und beliebte Bibliothek für die Programmiersprache PHP, die zur Generierung von PDF-Dokumenten aus HTML-Markup entwickelt wurde. Die Grundidee der Bibliothek ist es, Entwicklern die Erstellung von PDF-Dateien mit vertrauten Webtechnologien wie HTML, CSS und (eingeschränkt) JavaScript zu ermöglichen. Anstatt komplexe Low-Level-APIs für die PDF-Bearbeitung (wie bei FPDF oder TCPDF) zu erlernen, können Sie einfach eine HTML-Vorlage schreiben, diese mit CSS gestalten und an DomPDF zur Konvertierung übergeben.

Die Bibliothek verwendet eine Rendering-Engine, die auf DOMPDF basiert (daher der Name). Diese Engine parst HTML und CSS, erstellt eine visuelle Darstellung der Seite und exportiert sie dann in das PDF-Format. DomPDF unterstützt die meisten gängigen CSS-Eigenschaften, einschließlich Positionierung, Float, Flexbox (teilweise), sowie die Arbeit mit Schriftarten, Bildern und Tabellen.

Wofür wird diese Bibliothek benötigt?

  • Automatisierung von Berichten: Erstellung von Rechnungen, Gutachten, Lieferscheinen und Angeboten auf Basis von Datenbankinhalten.
  • Generierung von Zertifikaten und Diplomen: Schneller Export personalisierter Dokumente mit individuellen Daten (Name, Datum, Kurs).
  • Erstellung von E-Books und Handbüchern: Konvertierung von HTML-Inhalten in ein gut formatiertes PDF zum Herunterladen.
  • Speichern von Webseiten: Eine "Als PDF speichern"-Funktion für beliebige Inhalte auf Ihrer Website.
  • Integration in CMS: WordPress, Laravel, Symfony und andere Frameworks nutzen DomPDF aktiv für die Dokumentenerstellung.

Der größte Vorteil von DomPDF gegenüber Alternativen ist seine einfache Handhabung. Wenn Sie HTML und CSS beherrschen, beherrschen Sie bereits 80 % der Arbeit mit DomPDF.

Installation von DomPDF

Die Installation von DomPDF in ein modernes PHP-Projekt erfolgt über den Abhängigkeitsmanager Composer. Dies ist der Standardweg für PHP-Bibliotheken.

Stellen Sie sicher, dass Composer auf Ihrem System installiert ist. Führen Sie dann den folgenden Befehl im Stammverzeichnis Ihres Projekts aus:

composer require dompdf/dompdf

Nach erfolgreicher Installation erscheint in Ihrem Projekt ein vendor-Ordner, und in der Datei composer.json wird eine Abhängigkeitszeile hinzugefügt. Wenn Sie ein Framework (Laravel, Symfony) verwenden, kann die Installation geringfügig abweichen (z. B. über Service Provider), aber der grundlegende Befehl bleibt derselbe.

Wichtig: DomPDF erfordert PHP Version 7.1 oder höher. Es wird außerdem empfohlen, die PHP-Erweiterung mbstring zu installieren, um eine korrekte Verarbeitung von Mehrbyte-Kodierungen (UTF-8) zu gewährleisten.

Um die Installation zu überprüfen, erstellen Sie eine Datei test.php und fügen Sie den folgenden Code ein:

<?php
require_once 'vendor/autoload.php'; // Composer-Autoloader einbinden

use Dompdf\Dompdf;

$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>Hallo Welt</h1>');
$dompdf->render();
$dompdf->stream("test.pdf");

?>

Wenn beim Öffnen der Datei im Browser ein PDF mit der Aufschrift "Hallo Welt" heruntergeladen wird, war die Installation erfolgreich.

Schnellstart: Ihr erstes PDF-Dokument

Lassen Sie uns ein einfaches, aber vollständiges Beispiel erstellen. Wir generieren eine PDF-Datei mit einer Tabelle und Stilen.

<?php
require_once 'vendor/autoload.php';

use Dompdf\Dompdf;
use Dompdf\Options;

// 1. Optionen konfigurieren (optional)
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans'); // Schriftart mit UTF-8-Unterstützung
$options->set('isRemoteEnabled', true); // Externe Bilder erlauben

// 2. Dompdf-Instanz erstellen
$dompdf = new Dompdf($options);

// 3. HTML-Inhalt
$html = '
<!DOCTYPE html>
<html>
<head>
    <style>
        body { font-family: DejaVu Sans, sans-serif; }
        h1 { color: #2c3e50; text-align: center; }
        tabl                    

Empfehlungen