Home > PHP > Aus HTML eine PDF-Datei generieren

Aus HTML eine PDF-Datei generieren

Mittels des PDF Konverters DOMPDF kann man auf recht einfache und schnelle Weise fertige PDF-Dateien aus HTML-Quelltext generieren. DOMPDF wandelt den HTML-„Stream“ in eine PDF-Datei um. Die manuelle Zusammenstellung und Anordnung der Elemente mittels Koordinaten entfällt dadurch. In diesem Artikel werde ich kurz erklären, wie man in PHP5 mit DOMPDF eine HTML-Datei in eine PDF Datei konvertieren kann.

Zunächst muss dompdf (HTML to PDF converter) heruntergeladen werden. Auf GitHub kann man sich das fertige Paket als Archiv downloaden (Klick auf „ZIP“).

Im Ordner dompdf-master befindet sich Die Konfigurationsdatei mit dem Namen dompdf_config.inc.php. Diese müssen wir in unser Script inkludieren, um die Klasse DOMPDF nutzen zu können (im Beispielquelltext habe ich den Hauptordner in dompdf umbenannt). Anschließend legen wir eine neue Instanz dieser Klasse an und können die benötigten Funktionen des Objekts nutzen. Der Beispielcode für das PHP-Script sieht dann wie folgt aus:

Mit der Funktion file_get_contents() laden wir zunächst den Quellcode zum Konvertieren in die Variable $html. Im weiteren Schritt laden wir diesen in das DOMPDF-Objekt. Mit der Funktion render() wird der Quelltext in das PDF Format konvertiert. Mit stream() wird die PDF-Datei aufgerufen.

In der HTML-Datei datei.html könnte zum Beispiel folgender Quelltext stehen:

Vorteile einer Konvertierung von HTML zu PDF

Statt der manuellen Zusammenstellung der PDF, also der Anordnung der Elemente wie Überschrift, Text, Bilder etc., wird die PDF aus einem HTML File generiert.

Eine Einarbeitung in die Objekt-Funktionen zur Positionierung der einzelnen Texte in der PDF entfällt dadurch – eine deutliche Zeitersparnis wie ich finde, denn jeder Webentwickler beherrscht in der Regel HTML bzw. CSS.

Statt die PDF mit stream() auszugeben, kann die Funktion output() genutzt werden, um den PDF-Stream zurückzugeben. Abgelegt in einer Variable kann dieser dann in einer Datei abgespeichert werden.

Bei Fragen, Fehlern oder Verbesserungsvorschlägen könnt Ihr gerne die Kommentarfunktion nutzen. 🙂

  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks