Das eigene PDF

Einführung in die Zend_Pdf-Komponente des Zend Frameworks
Kommentare

PDF-Dokument direkt anzeigen
Das zweite Beispiel widmet sich dem Problem, dass das PDF-Dokument nicht gespeichert, sondern direkt an den Webbrowser gesendet werden soll. Der Nutzer soll dann selbst entscheiden

PDF-Dokument direkt anzeigen

Das zweite Beispiel widmet sich dem Problem, dass das PDF-Dokument nicht gespeichert, sondern direkt an den Webbrowser gesendet werden soll. Der Nutzer soll dann selbst entscheiden können, ob er das PDF-Dokument anzeigen oder speichern möchte. Listing 3 zeigt die Action-Methode für dieses Beispiel. Die ersten Zeilen zum Erstellen des neuen PDF-Dokuments, zum Anlegen der Seite und zum Schreiben der Texte sind ähnlich wie beim ersten Beispiel. Lediglich das Zeichnen der zweiten Textzeile demonstriert die Verwendung von UTF-8-kodierten Texten. Sie müssen bei der Verwendung der drawText()-Methode als vierten Parameter lediglich das Encoding angeben, in unserem Fall ist das UTF-8. Als Nächstes wird das gesamte PDF-Dokument an das View-Skript übergeben sowie wieder der Name des View-Skriptes geändert.

Wichtig sind die beiden letzten Zeilen, die zwei Header setzen, damit die Datei als Inline-Dokument an den Webbrowser gesendet und als PDF-Dokument erkannt wird. Somit kann der Nutzer selbst entscheiden, ob er das Dokument direkt anzeigen oder lieber speichern möchte. Das korrespondierende View-Skript in Listing 4 ist denkbar einfach gestrickt: es gibt lediglich das PDF-Dokument aus, indem es dieses in einen String umwandelt. Wenn Sie das zweite Beispiel aufrufen und sich das PDF-Dokument anzeigen lassen, sollten die Umlaute in der ersten Textzeile fehlen und in der zweiten vorhanden sein.

Mehrere Seiten in einem Dokument

Im nächsten Beispiel sehen Sie, wie einfach es ist, ein PDF-Dokument mit mehreren Seiten zu erstellen. Listing 5 zeigt, wie Sie dabei vorgehen müssen. Wichtig ist dabei die Eigenschaft pages des Zend_Pdf-Objektes, in dem alle Seiten vorgehalten werden. In dem Beispiel wird zuerst die erste Seite erstellt und mit einer Überschrift sowie einem Text versehen. Danach wird dann die zweite Seite hinzugefügt und ebenfalls mit Überschrift und einem Text ausgestattet. Der restliche Ablauf ist identisch mit dem vorherigen Beispiel. Wenn Sie es aufrufen, wird Ihnen ein PDF-Dokument angezeigt, das tatsächlich zwei Seiten enthält.

Einen langen Text umbrechen

Das vierte Beispiel ist etwas komplexer und löst ein häufig vorkommendes Problem. Zend_Pdf bietet von Haus aus nämlich keine Möglichkeit, einen längeren Text umzubrechen und bei Bedarf auf mehrere Seiten aufzuteilen. Listing 6 zeigt das komplette Beispiel. Der Beginn ist wieder gleich. Es wird ein Dokument erstellt, eine neue Seite hinzugefügt und mit einer Überschrift versehen. Danach wird eine einfache Textdatei geladen, in der ein längerer „Lorem ipsum“-Fülltext enthalten ist. Der Text wird auf eine Zeilenlänge von maximal 70 Zeichen umgebrochen und in ein Array konvertiert. Dann wird die Position der ersten Zeile festgelegt und die Vorbereitungen sind abgeschlossen.

Nun wird das Array mit den Textzeilen durchlaufen. Zuerst wird die Zeilenposition geprüft. Wenn das Seitenende erreicht ist, wird automatisch eine neue Seite erstellt und an das PDF-Dokument angehängt. Danach wird der Zeichensatz für die Seite und die neue Zeilenposition festgelegt. Zum Ende jedes Durchlaufs wird dann der Text gezeichnet und die Zeilenposition verändert.

Der Rest des Beispiels sollte wieder selbsterklärend sein. Wenn Sie das vierte Beispiel aufrufen, sollte Ihnen ein PDF-Dokument mit drei Seiten angezeigt werden. Sie sehen, dass der Text entsprechend umgebrochen wurde und von der ersten Seite auf allen folgenden fortgeführt wurde. Das Konvertieren von redaktionellen Artikeln aus einem CMS in ein PDF-Dokument sollte somit leicht möglich sein.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -