dompdf: Erstellen Sie PDFs aus HTML mit Leichtigkeit

Foto des Autors

By Jan

Was ist dompdf und wie funktioniert es?

Dompdf ist ein kostenloses Open-Source-PHP-Paket, mit dem du HTML-Dokumente in professionelle PDFs konvertieren kannst. Es nutzt die DOMDocument-Klasse von PHP, um den HTML-Inhalt in ein PDF-Dokument zu rendern.

Wie funktioniert dompdf?

Dompdf durchläuft folgende Schritte, um HTML in PDF zu konvertieren:

  1. HTML-Parsing: Es parst das angegebene HTML-Dokument und erstellt ein Dokumentenobjektmodell (DOM).

  2. CSS-Layout: Es wendet die im HTML-Dokument angegebenen CSS-Stile auf das DOM an und bestimmt das Layout des Dokuments.

  3. Seitenumbruch: Es teilt das Dokument in Seiten auf der Grundlage der Seitenränder und der verfügbaren Höhe auf.

  4. PDF-Generierung: Es rendert jede Seite als PDF und kombiniert sie zu einem einzigen PDF-Dokument.

Dompdf bietet außerdem eine Reihe von Konfigurationsoptionen, mit denen du die PDF-Ausgabe anpassen kannst, wie z. B.:

  • Schriftarten einbetten
  • Kopf- und Fußzeilen hinzufügen
  • Seitenränder festlegen
  • Sicherheitseinstellungen festlegen

Voraussetzungen für die Verwendung von dompdf

Damit du dompdf erfolgreich verwenden kannst, musst du einige Voraussetzungen erfüllen. Dies beinhaltet:

Ein Webserver

Dompdf ist eine serverseitige Bibliothek. Das bedeutet, dass du einen Webserver benötigst, um sie auszuführen. Dies kann ein lokaler Webserver wie XAMPP oder WAMP oder ein Hosting-Anbieter wie HostGator oder Bluehost sein.

PHP

Dompdf ist in PHP geschrieben, daher benötigst du PHP auf deinem Webserver. Die empfohlene PHP-Version für dompdf ist 5.6 oder höher. Du kannst die PHP-Version deines Servers mit dem Befehl php -v überprüfen.

HTML und CSS

Dompdf konvertiert HTML-Dokumente in PDFs. Daher musst du über ein gültiges HTML-Dokument verfügen, das du in ein PDF konvertieren möchtest. Darüber hinaus kannst du mithilfe von CSS das Erscheinungsbild des PDFs anpassen.

Optionale Voraussetzungen

Zusätzlich zu den oben genannten Voraussetzungen können je nach deinen spezifischen Anforderungen zusätzliche Elemente erforderlich sein:

  • Webbrowser: Du benötigst einen Webbrowser, um die generierten PDFs anzuzeigen.
  • PDF-Reader: Du benötigst einen PDF-Reader wie Adobe Reader oder Foxit Reader, um die PDFs zu öffnen und zu lesen.
  • Bildbearbeitungssoftware: Wenn dein HTML-Dokument Bilder enthält, benötigst du möglicherweise eine Bildbearbeitungssoftware wie Photoshop oder GIMP, um die Bilder für die Verwendung in dompdf zu optimieren.

Installieren und Einrichten von dompdf

Um mit dompdf HTML in PDF konvertieren zu können, musst du es zunächst auf deinem System installieren und einrichten.

Installation

  1. Kompatibilität prüfen: Stelle sicher, dass dein Server die folgenden Anforderungen erfüllt:

    • PHP >= 7.2
    • Ein Webserver wie Apache oder Nginx
    • Die PHP-Erweiterung gd (für Bildverarbeitung)
  2. Über Composer installieren: Führe in deinem Projektverzeichnis den folgenden Befehl aus:

    composer require setasign/dompdf
    
  3. Manuelle Installation: Alternativ kannst du die dompdf-Dateien manuell von GitHub herunterladen und in dein Projektverzeichnis extrahieren.

Einrichtung

  1. Autoloader einfügen: Füge deinem Projektverzeichnis die folgende Zeile hinzu, um den Autoloader von Composer zu verwenden:

    require_once __DIR__ . '/vendor/autoload.php';
    
  2. 命名skonvention: Erstelle ein Verzeichnis mit dem Namen dompdf im gleichen Verzeichnis wie die Autoloader-Datei.

  3. Konfigurationsdatei: Erstelle eine Konfigurationsdatei namens dompdf_config.inc.php im Verzeichnis dompdf. Füge den folgenden Code hinzu, um deine Konfiguration anzupassen:

    <?php
    define("DOMPDF_ENABLE_AUTOLOAD", false);
    define("DOMPDF_ENABLE_REMOTE", true);
    ?>
    
  4. Dompdf einbinden: Füge den folgenden Code zu deinen PHP-Skripten hinzu, um dompdf zu verwenden:

    use Dompdf\Dompdf;
    use Dompdf\Options;
    

Konvertieren von HTML in PDF mit dompdf

Nachdem du dompdf installiert und eingerichtet hast, kannst du damit beginnen, HTML-Dateien in PDF-Dokumente zu konvertieren. Der Konvertierungsprozess ist einfach:

Erstelle eine PHP-Datei

Erstelle eine neue PHP-Datei und füge den folgenden Code ein:

<?php
require_once 'dompdf/autoload.inc.php';

$dompdf = new Dompdf();
$html = file_get_contents('beispiel.html');
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$pdf = $dompdf->output();

file_put_contents('beispiel.pdf', $pdf);
?>

In diesem Beispiel wird eine HTML-Datei mit dem Namen beispiel.html in eine PDF-Datei mit dem Namen beispiel.pdf konvertiert.

Lade die HTML-Datei

Verwende die file_get_contents()-Funktion, um den Inhalt der HTML-Datei in eine Variable zu laden.

Erstelle das PDF-Dokument

Erstelle eine neue Dompdf-Instanz und lade die HTML-Daten mit der loadHtml()-Methode. Anschließend kannst du die Papiereinstellungen mit der setPaper()-Methode festlegen, z. B. A4 für den Papiertyp und landscape für die Ausrichtung.

Rendering und Ausgabe

Rufe die render()-Methode auf, um das PDF-Dokument zu rendern, und verwende die output()-Methode, um die PDF-Datei als Binärdaten abzurufen.

Speichern der PDF-Datei

Speichere die PDF-Datei in einem gewünschten Verzeichnis, indem du die file_put_contents()-Funktion verwendest, wie im obigen Beispiel gezeigt.

Anpassen und Erweitern der PDF-Ausgabe

Nachdem du HTML mit dompdf erfolgreich in PDF konvertiert hast, kannst du deine PDF-Ausgabe anpassen und erweitern, um sie an deine spezifischen Anforderungen anzupassen.

Papierformate und Ausrichtung ändern

Du kannst das Papierformat und die Ausrichtung deiner PDF-Dokumente nach deinen Wünschen anpassen. Beispielsweise kannst du das Format auf A4, Letter oder einen benutzerdefinierten Wert festlegen. Außerdem kannst du die Ausrichtung auf Hochformat oder Querformat ändern.

Seitenränder und Kopf-/Fußzeilen hinzufügen

Passe die Seitenränder an, um den verfügbaren Platz zu optimieren. Du kannst auch Kopf- und Fußzeilen hinzufügen, um Informationen wie Titel, Seitenzahlen und Datum auf jeder Seite anzuzeigen.

Schriftarten und Farben anpassen

Wähle aus einer Vielzahl von Schriftarten, um deinen PDFs ein professionelleres Aussehen zu verleihen. Du kannst auch die Schriftfarbe, -größe und -ausrichtung anpassen, um das Dokument optisch ansprechender zu gestalten.

Bilder und Grafiken einfügen

Binde Bilder und Grafiken in deine PDFs ein, um Informationen zu visualisieren und das Dokument ansprechender zu gestalten. Du kannst die Größe, Position und Ausrichtung der Bilder anpassen.

Tabellen und Listen formatieren

Formatiere Tabellen und Listen, um Daten übersichtlich zu präsentieren. Passe die Zellgrenzen, Füllfarben und Schriftarten an, um ein visuell ansprechendes Dokument zu erstellen.

Benutzerdefinierte CSS-Stile verwenden

Erweitere die Anpassungsmöglichkeiten, indem du benutzerdefinierte CSS-Stile verwendest. Verwende CSS, um das Aussehen von Text, Bildern, Tabellen und anderen Elementen zu steuern und ein einheitliches und professionelles Dokument zu erstellen.

Erweiterungen für zusätzliche Funktionen

dompdf bietet Erweiterungen, die zusätzliche Funktionen wie Wasserzeichen, Verschlüsselung und benutzerdefinierte Funktionen hinzufügen. Sie können diese Erweiterungen verwenden, um die Funktionalität deiner PDF-Dokumente zu erweitern und sie für spezifische Anwendungen anzupassen.

Durch die Anpassung und Erweiterung der PDF-Ausgabe kannst du professionelle und ansprechende Dokumente erstellen, die perfekt für deine Zielgruppe geeignet sind.

Fehlerbehebung bei Problemen mit dompdf

Leere oder beschädigte PDF-Ausgaben

  • Überprüfe, ob deine HTML-Datei gültiger Markup-Code ist. Ungültiger Code kann zu Problemen bei der Konvertierung führen.
  • Stelle sicher, dass du die richtige Version von dompdf für deine PHP-Version verwendest.
  • Überprüfe deine PHP-Fehlerprotokolle auf Fehlermeldungen. Diese können dir Hinweise auf die Ursache des Problems geben.

Langsame Konvertierungszeiten

  • Reduziere die Komplexität deiner HTML-Datei. Zu viel JavaScript, CSS oder Bilder können die Konvertierung verlangsamen.
  • Erhöhe den Arbeitsspeicher, der dompdf zugewiesen ist. Dies kann über die Dompdf::$memoryLimit-Eigenschaft erreicht werden.
  • Erwäge die Verwendung eines Cache-Systems wie PHP OPcache, um die wiederholte Konvertierung derselben HTML-Dateien zu beschleunigen.

Fehlende Schriftarten oder Formatierungen

  • Stelle sicher, dass die von dir verwendeten Schriftarten auf deinem System installiert sind.
  • Wenn du benutzerdefinierte Schriftarten verwendest, musst du diese in dompdf einbinden. Dies kann über die Dompdf::$defaultFont– oder Dompdf::$addFontFile()-Methoden geschehen.
  • Überprüfe deine CSS-Dateien, um sicherzustellen, dass sie mit dompdf kompatibel sind. Dompdf unterstützt nicht alle CSS-Eigenschaften.

Andere Fehler

Schreibe einen Kommentar