Zum Inhalt springen
Der Guide für ein smartes Leben.
VG Wort Pixel
PHP-Bibliotheken

Generieren von PDFs mit PHP

Für die Generierung von PDF-Dokumenten gibt es viele Anlässe. Internet Magazin zeigt, wie Sie die Dateien aus PHP heraus erzeugen.

Autor: Andreas Hitzig • 2.2.2011 • ca. 2:15 Min

image.jpg
© Internet Magazin
Inhalt
  1. Generieren von PDFs mit PHP
  2. Erste Schritte
  3. Einfügen von Grafiken

Egal, ob Sie von Ihrer Webseite heraus eine Auftragsbestätigung generieren oder Ihren Gästen die Option bieten möchten, bestimmte Inhalte herunterzuladen - in beiden Fällen bietet sich PDF als neutrales Format an. Unter PHP gibt es einige Bibliotheken, welche die grundlegenden Funktionen zum Erz...

Egal, ob Sie von Ihrer Webseite heraus eine Auftragsbestätigung generieren oder Ihren Gästen die Option bieten möchten, bestimmte Inhalte herunterzuladen - in beiden Fällen bietet sich PDF als neutrales Format an. Unter PHP gibt es einige Bibliotheken, welche die grundlegenden Funktionen zum Erzeugen eines PDF-Dokuments abdecken. Weit verbreitet ist Pdflib von der Münchner Firma Pdflib GmbH (www.pdflib.com/de/pdflib-gmbh/ ).Diese Bibliothek hat es sogar in das Standardpaket von Xampp und auf die Webseite von PHP.net geschafft. Für die folgenden Beispiele greifen wir auf diese Bibliotheken zurück. Eine detaillierte Installationsanleitung für diverse Umgebungen finden Sie online auf der Pdflib-Webseite unter www.pdflib.com/fileadmin/pdflib/pdf/support/PDFlib-in-PHP-HowTo.pdf .

Installation

Laden Sie sich die Dateien vom Webserver von Pdflib und entpacken Sie diese im PHP-Verzeichnis für Erweiterungen (ext). Fügen Sie der php.ini für Windows die Zeile

extension=php_pdflib.dll

und für Linux

extension=pdf.so

ein und speichern Sie die Datei. Starten Sie Ihren Apache-Webserver neu. Ob Ihre Installation erfolgreich war, sehen Sie nach Aufruf von phpinfo():

<?phpinfo()?>

Hat alles funktioniert, finden Sie im Dokument einen Abschnitt mit der Überschrift pdf und Verweise auf die installierte Version sowie den Hersteller Pdflib GmbH.

Erste Schritte

image.jpg
Mit dem Code-Grundgerüst erzeugen Sie ein einfaches PDF-Dokument.
© Internet Magazin

Eine komplette Übersicht aller Befehle von Phplib finden Sie in der PHP-Dokumentation. In den folgenden Beispielen zeigen wir Ihnen, welches Grundgerüst an Befehlen Sie für die Erzeugung eines PDF-Dokuments benötigen und wie Sie dieses an Ihre eigenen Anforderungen anpassen.Im ersten Schritt erzeugen Sie ein Pdflib- Objektdfscxvf mit den Standardwerten - über dieses steuern Sie die weitere Verarbeitung.

$p = PDF_new();

Falls es beim Erzeugen der neuen PDF-Datei zu einer Fehlermeldung kommen sollte, geben Sie diese aus und beenden Sie die Verarbeitung.

if (PDF_begin_document($p, "", "")
== 0) {
die("Aufgetretener Fehler: " . PDF_
get_errmsg($p));
}

Nicht zwingend notwendig, jedoch für spätere Belange nicht unwichtig, sind administrative Angaben zum Dokument. Dabei stehen Ihnen verschiedene Eigenschaften zur Verfügung: Autor (author), erzeugende Instanz (creator), Titel des Dokuments (title), Inhalt des Dokuments (subject) und Schlüsselbegriffe (keywords).

PDF_set_info($p, "Creator", "PHP
Skript");
PDF_set_info($p, "Author", "Andreas
Hitzig");
PDF_set_info($p, "Title", "Mein
erstes PDF auf PHP");

Ein PDF-Dokument besteht aus einer beliebigen Anzahl von Seiten. Eine solche definieren Sie mit dem Befehl PDF_begin_page_ext() und geben dabei das Format der Seite mit. Eine DIN-A4-Seite hat eine Größe von 595 x 842 Punkten:

PDF_begin_page_ext($p, 595, 842, "");

Weitere gebräuchliche Maße finden Sie online in der PDF-Dokumentation des Befehls (de2.php.net/manual/en/function.pdfbegin-page-ext.php ).Bevor Sie einen Text ausgeben, legen Sie die Schrift und die Schriftgröße fest. Achten Sie darauf, eine Standard-Schrift zu verwenden, die auf jedem Computer vorhanden ist, da Sie diese ansonsten mit im PDF-Dokument übergeben müssten.Die Definition der Schriftart ist ein zweistufiger Prozess: Als Erstes laden Sie eine Schriftart und anschließend definieren Sie die entsprechende Schriftgröße.

$font = PDF_load_font($p, "Courier",
"winansi", "");
PDF_setfont($p, $font, 24.0);