PDF-Dateien mit PHP

Vor kurzem stand ich vor dem Problem mit PHP ein PDF aus einer HTML-Datei zu erzeugen. Zwar gibt es mit PHP grundsätzlich Möglichkeiten ein PDF zu erstellen, dies ist aber vergleichsweise mühsam.

Ein Beispiel (Quelle) :

<?php
$fd = fopen("test.pdf", "w");
$pdfdoc = pdf_open($fd);
pdf_begin_page($pdfdoc, 421, 595);
pdf_set_font($pdfdoc, "Times-Roman", 24, "host");
pdf_set_text_pos($pdfdoc, 100, 100);
pdf_show($pdfdoc, "Hallo Welt");
pdf_end_page($pdfdoc);
pdf_close($pdfdoc);
fclose($fd);
?>

Bei diesem Beispiel wird ein PDF mit einem Text an der Position 100, 100 erstellt. Bei komplexen Dokumenten wird die Sache recht schnell aufwändig.

Eine kurze Internetsuche förderte die HTML2PDF-Bibliothek zu Tage. Diese verspricht HTML-Dokumente direkt in das PDF-Format zu konvertieren.

Die Installation des Scripts gestaltet sich recht einfach. Nach dem Download wird das Script einfach in einen Ordner der Webseite entpackt:

html2pdf

dateien

Nun muss man nur noch ein kleines Script schreiben, welches die bestehende HTML-Datei in ein PDF konvertiert. Dies geht mit wenigen Zeilen (Datei pdf.php):

<?php
    ob_start();
    include(dirname(__FILE__).’/mail.html‘);
    $content = ob_get_clean();
    require_once(dirname(__FILE__).’/pdf/html2pdf.class.php’);
    $html2pdf = new HTML2PDF(‘P’,’A4′,’fr’);
    $html2pdf->setDefaultFont(‘Arial’);
    $html2pdf->WriteHTML($content, isset($_GET[‘vuehtml’]));
    $html2pdf->Output(‘mail.pdf’);

Wird die pdf.php nun mit dem Browser aufgerufen wird die Datei “mail.htm” in ein PDF konvertiert und angezeigt oder zum Download angeboten:

pdf

Die PHP-Bibliothek gibt es unter http://sourceforge.net/projects/html2fpdf/ zum Download.

Allerdings sollte man nicht zu viel erwarten. Einfache HTML-Dokumente lassen sich problemlos konvertieren, komplexe neigen zu Darstellungsfehlern. Hier hilft nur probieren und testen.

Ebenfalls sollte die HTML-Datei halbwegs in Ordnung sein. Nicht geschlossene und falsche platzierte Tags brechen den Konvertierungsvorgang sofort ab.

Wer damit leben kann, kann mit 5 Minuten Aufwand PDF-Dokumente mit PHP erzeugen.

Hier gehts zur Online-Demo.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert