Bei Zend_Pdf handelt es sich um eine der ältesten Komponenten des Zend Frameworks. Bereits in der ersten frühen Pre-Alpha-Version 0.1.1 war Zend_Pdf vertreten. Schon damals konnte man recht einfach PDF-Dokumente mit PHP erstellen. Zend_Pdf wurde seitdem konsequent weiterentwickelt und hat seit kurzem auch die lang ersehnte UTF-8-Unterstützung spendiert bekommen.
Dieser Artikel basiert auf dem Release 1.6.0 und setzt einige Kenntnisse im Aufbau einer Anwendung mithilfe einer Bootstrap-Datei sowie Zend_Controller und Zend_View voraus. Jedes Beispiel besteht aus einer Action im IndexController sowie aus einem View-Skript. Falls das Zend Framework für Sie komplettes Neuland ist, empfehle ich die Lektüre der Schnellanleitung im Zend Framework Manual.
Hinweis
Sämtliche Dateien (Bootstrap-Datei, Controller, View-Skripte, Grafiken usw.) für die hier angesprochenen Beispiele finden Sie übrigens hier (.zip, 224 KB). Ich empfehle Ihnen, diese Dateien auf Ihren Rechner zu kopieren, dann können Sie alle Beispiele gleich ausprobieren.
Alle Beispiele sollten in der Regel auch mit späteren Versionen des Zend Frameworks laufen. Sie müssen lediglich die Verzeichnisse in der Bootstrap-Datei und in den View-Skripten anpassen, die aktuelle Version des Zend Frameworks in das Verzeichnis /library/Zend kopieren und schon können Sie die Anwendung starten (Abbildung 1).
Als erste Einführung empfiehlt sich ein Blick in das Manual zu Zend_Pdf, das die verschiedenen Funktionen der Komponente vorstellt und auch ein komplettes Beispiel enthält. Zudem bietet auch das Tutorial auf der Zend Developer Zone eine gute Einführung in die grundlegenden Möglichkeiten von Zend_Pdf.
PDF-Dokument speichern
Wir beginnen mit einem einfachen Beispiel. Es soll ein PDF-Dokument erstellt und gespeichert werden. In einer HTML-Seite soll dann ein direkter Link auf dieses erstellte PDF-Dokument eingebunden werden. Somit kann der Nutzer die Datei direkt anzeigen oder auf seinem Rechner speichern.
Listing 1 zeigt die Action-Methode zum Erstellen und Speichern eines einfachen PDF-Dokuments. Zuerst wird eine neue Instanz von Zend_Pdf instantiiert. Danach wird eine neue Seite im A4-Format erstellt und dem PDF-Dokument hinzugefügt. Als Nächstes werden eine Überschrift und zwei Textzeilen ergänzt. Dabei muss vor dem ersten Zeichnen eines Texts immer zuerst ein Zeichensatz ausgewählt werden, weil ansonsten eine Exception geworfen wird (hier eine Übersicht über die Zeichensätze). Danach wird noch ein Dateiname festgelegt und die Datei gespeichert. Bitte achten Sie darauf, dass beim Ausprobieren der Beispiele Ihr Webserver auch Schreibrechte im Verzeichnis /public/pdf/ hat. Ansonsten wird nämlich ebenfalls eine Exception geworfen. Zu guter Letzt werden noch einige Template-Variablen an das View-Skript übergeben und der Name des View-Skripts geändert.
Bei den Aufrufen der drawText()-Methoden sind Ihnen sicherlich die Zahlenwerte aufgefallen. Zum Zeichnen eines Texts müssen immer die Koordinaten angegeben werden, bei denen der Text eingefügt werden soll. Der erste Wert stellt dabei den Abstand vom linken Rand der Seite und der zweite Wert den Abstand vom unteren (!) Rand der Seite dar. Das ist zu Beginn etwas gewöhnungsbedürftig, aber mit der Zeit kommt man mit der Vorgabe ganz gut klar. Die Koordinaten werden in Points/Punkten gemessen, was 1/72 eines Inches/Zolls entspricht. Eine DIN-A4-Seite hat übrigens die Maße von 595 Punkten Breite und 842 Punkten Höhe.
Das entsprechende View-Skript ist in Listing 2 zu sehen. Es besteht aus einer simplen HTML-Seite, in der ein Link zu dem erstellten PDF-Dokument zu finden ist. Wenn Sie auf diesen Link klicken, sollte Ihnen Ihr Webbrowser die Datei zur Anzeige oder zum Speichern anbieten. Zudem sollte im Verzeichnis /public/pdf/ nun die Datei pdf1.pdf erstellt worden sein.




