Teil 2: Vergleich gängiger PDF Libraries
Kommentare

Barrierefreiheit: Um die Inhalte des PDF-Dokumentes auch anderweitig verfügbar zu machen, steht das so genannte „Tagging“ zur Verfügung. Das Dokument wird somit in eine logische, semantische Struktur überführt; umfangreiche Metadaten, wie zum Beispiel Alternativtexte für Grafiken, beinhalten weitere wichtige Informationen.

In diese Struktur überführt, können beispielsweise Screenreader ein PDF öffnen und es dem Benutzer vorlesen. Allerdings ist es so auch möglich, das Dokument zum Beispiel in ein E-Book für Amazons Kindle umzuwandeln, da das Tagging auch umfangreiche Informationen zur Textflusskontrolle erhält.

UTF-8

Dass wir in der heutigen Zeit Dokumente in einer Vielzahl von Sprachen und somit in vielen unterschiedlichen Zeichensätzen anbieten können müssen, ist selbstverständlich. Um dies problemlos bewerkstelligen zu können, ist es nötig, die Daten in UTF-8 ausgeben zu können.

PDF/X

Die mittlerweile am weitesten verbreitete Norm, PDF/X-3:2002, ISO-Standard 15930-3, wurde im Jahr 2002 verabschiedet. Der Standard stellt ein Regelwerk bereit, um einen zuverlässigen Datenaustausch für die Druckvorstufe gewährleisten zu können. Das Hauptaugenmerk liegt also vollständig auf hervorragenden Druckergebnissen. Um diese zu erreichen, werden PDF-Elemente untersagt, die nicht gedruckt werden können, beispielsweise JavaScript und Audio- oder Videoelemente. Weiterhin gibt es klare Regeln, wie mit den verwendeten Schriften, Farbprofilen und Grafiken zu verfahren ist. Inzwischen gibt es noch viele weitere Normen, jede mit ihren eigenen spezifischen Besonderheiten. Bei Interesse sei hier auf den entsprechenden Artikel in Wikipedia verwiesen.

Langzeitarchivierung: PDF/A

Vergleichbar zu PDF/X gibt es die Normreihe PDF/A, die sich mit Regeln zur Langzeitarchivierung elektronischer Dokumente beschäftigt. Auch hier wird festgelegt, welche Elemente nicht zulässig sind, beziehungsweise wie zulässige Elemente verwendet werden müssen.

FPDF

Der Methusalem unter den (kostenlosen) PDF-Bibliotheken (Release 1 erschien am 17.09.2001) ist das noch immer in PHP 4 geschriebene FPDF: Bestandteil vieler anderer Softwarepakete, gerühmt und verflucht. Dem Code liegt hier eine proprietäre, permissive Lizenz zu Grunde. Anders ausgedrückt: Jeder kann mit FPDF tun und lassen, was er möchte. Es wird auch nicht zwischen kommerzieller und anderweitiger Verwendung unterschieden.

Die größte Stärke von FPDF liegt meines Erachtens in der großen Community, die eine Vielzahl an Add-ons mit einer Menge an neuen Funktionen bereitstellt. Dies ist jedoch gleichzeitig die größte Schwäche, da die Codebasis recht veraltet ist und kein Plug-in-Konzept anbietet. Add-ons werden durch Erweiterung der FPDF-Basisklasse erstellt und dort durch Implementierung neuer Methoden realisiert. Das führt beim Einsatz vieler Add-ons zu langen Vererbungsketten, bei denen die Elternklasse der einzelnen Klassen, die ja in der Regel alle von FPDF erben, von Hand ausgetauscht werden müssen. Problematisch wird es, wenn man mehrere Add-ons einsetzt, die die gleichen Methoden überschreiben. Hier ist dann massive Handarbeit angesagt. Aus diesem Grund habe ich mich in diesem Artikel darauf beschränkt, immer nur das Basispaket zu betrachten.

Die interessantesten Funktionen von FPDF sind meiner Ansicht nach Funktionen für den automatischen Seitenumbruch sowie das Kopf- und Fußzeilenmanagement. Kurz gesagt: Man definiert in einer eigenen Klasse, die FPDF überschreibt [sic], in den Header- und Footer-Methoden das jeweilige Aussehen derselben. Nun kann man die eigentlichen Inhalte auf der Seite platzieren. Sobald diese Inhalte in einen definierten Randbereich hinein laufen, wird die Ausgabe unterbrochen, eine neue Seite mit den jeweiligen Headern und Footern erstellt und dann die Ausgabe wieder fortgesetzt. Besonders schön funktioniert das mit Tabellen. Durch diese Funktion ist es ein Leichtes, tabellarische Daten oder große Textmengen in das PDF-Format umzuwandeln. Auch ein paar Bilder (JPEG, PNG und GIF) lassen sich hier noch einfügen. Aber dann erschöpft sich der Funktionsumfang bereits und wir müssen auf das reichhaltige Add-on-Angebot zurückgreifen. Die Unterstützung von zumindest rudimentären Farbfunktionen (Graustufen, RGB, CMYK) setze ich bei allen Libraries voraus, ebenso die Möglichkeit eigene Schriften einzubinden (TrueType, Type1). Letzteres funktioniert bei dieser Library allerdings erst nach Umwandeln in „PHP-Schriften“. Weiterhin erwarte ich allerdings auch, dass zumindest UTF-8 unterstützt wird – bei FPDF ist hier leider Fehlanzeige, man muss sich wieder ein Add-on zunutze machen. Ebenso vermisse ich grundlegende Grafikfunktionen, wie die Möglichkeit, Polygone, Kreise und ähnliches zu zeichnen. Höhere Funktionen wie PDF/X und PDF/A etc. sucht man hier dann natürlich vergebens. Aufgrund dieser fehlenden Eigenschaften und der veralteten Codebasis mit äußerst ungenügender Kommentierung würde ich vom Einsatz von FPDF eher abraten.

Weiter mit: Teil 3

Alle Teile: Teil 1, Teil 2, Teil 3, Teil 4, Teil 5

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -