PDF/A in PDFlib

PDF/A-Unterstützung in der PDFlib-Produktfamilie

PDFlib GmbH führte bereits 2006 die PDF/A-Funktionalität in ihren Produkten ein. Die Produkte von PDFlib waren die ersten, die XMP-Extension-Schemas unterstützen. Alle Produkte der aktuellen Version 9 der Produktfamilie PDFlib unterstützen alle Varianten von PDF/A-1, PDF/A-2 und PDF/A-3. Anwendungsentwicklern wird ein Toolkit für die folgenden für PDF/A relevanten Operationen an die Hand gegeben:

  • PDF/A von Grund auf neu erzeugen, z.B. basierend auf Text aus einer Datenbank
  • Rasterbilder nach PDF/A konvertieren (z.B. Scans)
  • bestehende PDF/A-Dokumente bearbeiten, z.B. aufteilen oder zusammensetzen
  • Verwendung von ICC-Profilen und geräteunabhängiger Farbe für alle Bereiche des Color-Managements
  • Erzeugung von PDF/A Level A mit Strukturinformation (Tagged PDF), auch in Kombination mit PDF/UA
  • das generierte Dokument mit XMP-Metadaten versehen, einschließlich XMP-Extension-Schemas
  • Bestimmung von Glyphnamen in Fonts zur Bestimmung eines geeigneten ActualText für Symbol- Fonts
  • Anhängen von PDF/A-Dokumenten an PDF/A-2-Dateien oder von beliebigen Dateitypen an PDF/A- 3-Dateien

Diese Operationen können mit einfachen PDFlib-Funktionsaufrufen implementiert werden. Mit den PDFlib-Paketen wird Beispielcode für eine Vielzahl an Programmiersprachen und Entwicklungsumgebungen ausgeliefert. Im PDFlib-Cookbook werden weitere Programmiermethoden vorgestellt. Um die von PDF/A geforderte Font-Einbettung zu erleichtern, enthält das japanische Resource-Kit von PDFlib gängige japanische Fonts. In der Software-Lizenz ist bereits eine Lizenz für die Einbettung dieser Fonts enthalten.

Erzeugung von PDF/A mit PDFlib

Mit PDFlib kann auf Basis folgender Mechanismen PDF/A-konforme Ausgabe erzeugt werden:

  • PDFlib kümmert sich automatisch um verschiedene formale Einstellungen für PDF/A, zum Beispiel die PDF-Version und die erforderlichen XMP-Identifikationseinträge.
  • Der PDFlib-Client muss explizit bestimmte Funktionsaufrufe und Optionen verwenden (z.B. für die Font-Einbettung).
  • Der PDFlib-Client darf bestimmte Funktionsaufrufe und Optionen nicht verwenden (z.B. Verschlüsselung).

Wenn sich der PDFlib-Client an diese Regeln hält, ist standardkonforme PDF/A-Ausgabe gewährleistet. Entdeckt PDFlib eine Regelverletzung bei der PDF/A-Erstellung, so wird eine Exception ausgelöst, die von der Anwendung abgefangen werden muss. In diesem Fall wird keine PDF-Ausgabe erzeugt. Die Gefahr der Erzeugung nichtkonformer Ausgabe beim Auftreten eines Fehlers besteht nicht. Details erforderlicher und verbotener Operationen werden in der PDFlib-Dokumentation erläutert.

Verarbeitung von PDF/A mit PDFlib

Beim Importieren von Seiten aus vorhandenen PDF/A-Dokumenten müssen weitere Regeln beachtet werden. Beim Umgang mit bestehenden PDF/A-Dokumenten prüft PDFlib + PDI sorgfältig die PDF/A-Eigenschaften aller Ein- und Ausgabedokumente, um sicherzustellen, dass die Ausgabe noch PDF/A-konform ist. Als zusätzliche Steuermöglichkeit kann die Ausgabebedingung eines importierten Dokuments in die Ausgabe-PDF kopiert werden, um die PDF/A-Farbeigenschaften eines vorhandenen Dokuments exakt zu reproduzieren. Ebenso können XMP-Metadaten aus importierten Dokumenten kopiert oder zusammengefasst werden.

Erzeugung von PDF/A Level A mit PDFlib

PDF/A Level A kann als Level B mit Tagged PDF betrachtet werden. Die Unterstützung von PDFlib für PDF/A Level A basiert auf den Funktionen zur Erzeugung von Tagged PDF: Jedes Inhaltselement kann an einer bestimmten Stelle im Strukturbaum des Dokuments platziert werden. Für die Dokumentstruktur nicht relevante Elemente wie Kopf-, Fußzeilen und Seitenzahlen können als Artefakte ausgezeichnet werden. Damit werden sie ignoriert, wenn das Dokument von einer Software vorgelesen oder in ein anderes Format konvertiert wird. Für Rasterbilder und Vektorgrafik kann Alternativtext hinterlegt werden. PDFlib zeichnet Tabellen und Artefakte automatisch aus, was eine große Zeitersparnis für Entwickler bedeutet und die Erstellung standardkonformer Strukturhierarchie deutlich vereinfacht. PDFlib prüft die übergebenen Tags, um sicherzustellen, dass die Verschachtelung der Strukturelemente und -Attribute ISO 32000-1-konform ist. Zum Beispiel müssen Tags für Überschriften oder Listen korrekt verschachtelt sein.

Die integrierte Unterstützung von PDF/UA erleichtert die Erzeugung von sowohl zugänglicher als auch archivierbarer PDF-Ausgabe. Beachten Sie, dass zur Erzeugung von Tagged PDF detaillierte Kenntnisse der logischen Dokumentstruktur benötigt werden. PDFlib kümmert sich zwar um die PDF-bezogenen Informationen, aber es kann nicht die Dokumentstruktur aus dem Inhalt des Dokuments ableiten.