Einleitung
Mit Hilfe der PDF-Bibliothek von Thomas Merz können mit PHP PDF
Dateien erzeugt werden. Die Bibliothek ist unter http://www.pdflib.com/products/pdflib/index.html; verfügbar. Zudem sind noch zwei
weitere Bibliotheken notwendig, die JPEG
Bibliothek und die TIFF
Bibliothek, um PHP zu übersetzen. Diese beiden Bibliothek
bereiten häufig Probleme bei der Konfiguration von PHP. Sie
sollten unbedingt die Meldungen des Konfigurations-Skripts
befolgen, um aufkommende Probleme zu lösen.
Beachten sie zudem die excellente Dokumentation die mit pdflib
ausgeliefert wird. Sie gibt einen guten Überblick über die
Möglichkeiten von pdflib.
Die meisten Funktionen in pdflib sind in ähnlicher Form auch in
PHP vorhanden. Die Parameter sind in der Regel auch identisch.
Sie sollten zudem die Grundkonzepte von PDF und Postscript
verstanden haben, um das PDF Module effizient nutzen zu können.
Alle Längen und Koordinatenangaben sind in Postscript-Punkten
gemessen. Für gewöhnlich entsprechen 72 PostScript-Punkte 1 Inch,
was jedoch von der Auflösung des Ausgabegeräts abhängt.
Neben diesem Modul gibt es noch ein weiteres zur Erzeugung von
PDF-Dateien basierend auf der Bibliothek ClibPDF von
FastIO.
Es hat eine geringfügig andere Programmierschnittstelle.
Schauen Sie in die
Funktionsübersicht für
weitere Details.
Das PDF Module von PHP verwendet einen neuen Type von Variable
Er wird
pdfdoc genannt.
pdfdoc ist ein Zeiger auf das PDF Dokument und
wird bei fast allen Funktion als erster Parameter erwartet.
Altlasten
Since the very begining of PDF support in PHP — starting with
pdflib 0.6 —
there has been tons of changes especially to the pdflib API. Most of
these changes has been somehow covered by PHP, some has even required
changes to the PHP API. Since pdflib
3.x the API seems to be stabilzed and PHP4 has adopted the version as a
minimum requirement for PDF support. The consequence will be that many
functions will disappear or be replaced by alternatives sooner or later.
Support for pdflib 0.6 is already completely given up.
The following table list all the functions which are deprecated
in PHP 4.02 and should be replaced by their new versions.
Tabelle 1. Deprecated functions and its replacements
Tips zur Installation von pdflib 3.x
Seit Version 3.0 von pdflib sollten sie pdflib mit der configure-Option
--enable-shared-pdflib konfigurieren.
Verwenden alter pdflib Versionen
Mit Version 2.20 von pdflib wurden einige Veränderungen an der API
vorgenommen. Zudem ist Unterstützung für asiatische Zeichensätze
hinzugekommen. Dies hat leider auch zu Änderungen am php4-Modul
geführt (nicht php3). Wenn Sie pdflib 2.20 benutzen, dann sollten
Sie die Erzeugung von Dokumenten im Speicher mit Vorsicht benutzen.
Bis zur entgültigen Version 3.0 von pdflib könnte dies instabil sein.
Der encoding Parameter der Funktion pdf_set_font()
hat sich in eine Zeichenkette geändert. Dies bedeutet, dass anstatt
von beispielsweise 4 jetzt 'winansi' verwendet werden muss.
Wenn Sie die Version 2.30 von pdflib verwenden, dann steht Ihnen
die Funktion pdf_set_text_matrix() nicht mehr
zur Verfügung. Diese Funktion wurde komplett entfernt. Grundsätzlich
ist es ratsam die release notes der verwendeten Version von pdflib
zu lesen.
Versionen von PHP4 die nach dem 9. März 2000 erscheinen unterstützen
nur noch die Versionen >3.0 von pdflib. PHP3 sollte hingegen nicht
mit Versionen >2.01 verwendet werden.
Bei Gebrauch von pdflib 2.01 sollte überprüft werden, ob die
Bibliothek richtig installiert wurde. Es sollte die Datei oder
ein Verweis libpdf.so im Installationsverzeichnis von pdflib
existieren. Version 2.01 erzeugt nur die Bibliothek mit dem Namen
libpdf2.01.so, die so nicht vom Linker des Systems gefunden werden
kann. In diesem Fall müssen Sie den Verweis von libpdf.so nach
libpdf2.01.so selbst anlegen.
Beispiele
Die meisten Funktionen sind sehr einfach zu benutzen. Das Schwierigste
wird wohl sein, überhaupt ein einfaches PDF-Dokument zu erstellen.
Das folgende Beispiel soll die ersten Schritte erleichtern.
Dieses Skript erstellt die PDF-Datei hallo.pdf,
welche nur aus einer Seite besteht.
Auf der Seite befindet sich der Text "Hallo Welt! (sagt PHP)",
in einem 30pt Zeichensatz.
Beispiel 1. Erstellung eines PDF Dokuments mit pdflib
Das PHP-Skript fertiges_pdf.php liefert nur das PDF-Dokument.
|
Die pdflib-Distribution enthält ein komplizierteres Beispiel,
welches ein Reihe Seiten erstellt die jeweils eine analoge Uhr
mit der aktuellen Uhrzeit enthalten. Dieses Beispiel in ein
PHP-Skript umgesetzt sieht wie folgt aus (das gleiche Beispiel wird
auch in der Dokumentation zum
cpdf Modul verwendet):
Beispiel 2. pdfclock Beispiel aus der pdflib Distribution
Das PHP-Skript fertiges_pdf.php liefert wiederum nur
das Dokument.
|