Was PDFlib ist und kann
PDFlib ist seit 1997 am Markt; der Hersteller, die PDFlib GmbH in München, war 2006 Gründungsmitglied der PDF Association. Der Kern ist in C und C++ geschrieben und lässt sich aus C, C++, Java, .NET, Objective-C, Perl, PHP, Python, RPG und Ruby ansprechen, unter Windows, macOS, Linux und Unix sowie auf IBM System i und IBM Z. Erzeugt werden PDF 1.4 bis 1.7 und PDF 2.0 — mit Unicode, TrueType- und OpenType-Schriften, Textfluss mit Silbentrennung, Tabellen über mehrere Seiten, SVG und den gängigen Bildformaten. Aktuell ist PDFlib 11.
Die Bibliothek gibt es in Stufen. PDFlib erzeugt PDFs von Grund auf. PDFlib+PDI importiert zusätzlich vorhandene PDF-Seiten und enthält pCOS, mit dem sich Metadaten, Schriften oder eingebettete Dateien abfragen lassen. Der PDFlib Personalization Server (PPS) ergänzt Blöcke, die in einer Acrobat-Vorlage angelegt und per Programm gefüllt werden. TET 6 arbeitet in die Gegenrichtung und extrahiert Text, Bilder und Metadaten. An Standards deckt PDFlib PDF/A-1, -2 und -3, PDF/X-3, PDF/X-4, PDF/X-4p und PDF/X-5n, PDF/UA-1, PDF/VT-1 sowie ZUGFeRD und Factur-X ab.
Wie wir mit PDFlib arbeiten
Bei uns läuft PDFlib fast immer in PHP, geladen als Erweiterung — in eigenen Anwendungen auf Symfony oder Laminas, in TYPO3-Extensions und in Shopware-Plugins. Die Erzeugung bekommt ein eigenes Modul: Daten hinein, PDF heraus. Wo sich das Layout öfter ändert als die Logik, arbeiten wir mit PPS-Vorlagen, damit eine Gestaltungsänderung keine Programmänderung nach sich zieht. Große Läufe gehen in den Hintergrund und werden protokolliert, damit sich jedes Dokument auf seinen Datensatz zurückführen lässt.
Ein Standard gilt bei uns erst als erfüllt, wenn ein unabhängiges Prüfwerkzeug das bestätigt; barrierefreie PDFs testen wir zusätzlich mit dem Screenreader. Betrieben werden die Anwendungen auf unseren eigenen Servern in Deutschland, wo PHP-Version, PDFlib-Erweiterung, Schriften und Ausgabeprofile zusammen gepflegt werden — mit Wartung und SLA und mit Updates auf neue PDFlib-Versionen, die wir vorher gegen dieselben Testdaten laufen lassen. Der Quellcode gehört Ihnen, die PDFlib-Lizenz läuft auf Ihr Unternehmen.
Grenzen: wann PDFlib zu viel ist
PDFlib ist kommerziell lizenziert, je Rechner und Betriebssystem, und es ist eine Bibliothek, kein Gestaltungswerkzeug: Jedes Layout wird programmiert oder als Vorlage gebaut. Für eine überschaubare Zahl einfacher Dokumente ohne Standardvorgabe ist das mehr, als die Aufgabe verlangt. Dann setzen wir eine quelloffene HTML-zu-PDF-Lösung ein — in derselben PHP-Anwendung, mit denselben Tests und ohne Lizenzkosten für PDFlib. Wächst die Anforderung später, wechselt nur die Erzeugung.
Die zweite Grenze betrifft die Erwartung. PDFlib erzeugt ein Dokument nach PDF/UA-1, aber die Struktur — Überschriften, Lesereihenfolge, Alternativtexte — muss die Anwendung liefern. Dasselbe gilt für ZUGFeRD: Die Bibliothek bettet die XML normgerecht in ein PDF/A-3 ein, für richtige Rechnungsdaten sorgt Ihr System. Wer das vor dem Projekt weiß, plant die Datenseite von Anfang an mit, statt sie am Ende nachzureichen.