1. PDF-Struktur und PDF/A für Langzeitarchivierung Schnell-Einstieg in das Thema PDF und PDF/A. PDF-Dateistruktur Besonderheiten von PDF/A …
2. PDF = Portable Document Format 1993 von Adobe veröffentlicht (basierend auf Postscript) Ziele: Dateiformat für elektronische Dokumente Unabhängig von Anwendungsprogramm --“-- Betriebssystem --“-- Hardwareplattform Originalgetreue Wiedergabe Ansicht und Ausdruck immer in der vom Author festgelegten Form Einbetten von Multimedia-Inhalten PDF - Überblick
9. Streams Folge von Bytes Inkrementelles Einlesen möglich Keine Fixe Größe Bestehen aus Wörterbuch-Objekt und Inhalt (zwischen „stream“ und „endstream“) Zwingend: Angabe von /Length Objekt-Typen (3) Quelle: http://blog.didierstevens.com/2008/05/19/pdf-stream-objects/
11. Dateistruktur Im wesentlichen 4 Teile: Head (nur 1x) PDF-Version zB%PDF-1.4 Body (mehrfach) PDF-Objekte (direkte und indirekte) Baumstruktur XRef(mehrfach) Cross-Reference-Tabelle (indirekte Objekte) Trailer (mehrfach) Position von XRef Dictionary mit besonderen Informationen Quelle: http://www.iicm.tu-graz.ac.at/thesis/dekert.pdf
12. Dateistruktur – Inkrementell Inkrementelles Speichern Schnelleres Speichern Rollback leicht möglich Ermöglicht mehrfache Signaturen Dateigröße wächst an Keine Optimierung nach Signatur! Quelle: http://labs.appligent.com/pdfblog/pdf_basic_file_layout.php
13. Dateistruktur - Linearization Aka „Fast Web View“ Umstrukturiertung der Objekte: erste Seite am Dateianfang Tips: Initial View auf „Page Only“ setzen Formulare nicht linearisieren Kein Vorteil bei einseitigen PDFs Doku in der Adobe Referenz mangelhaft Testen nur schwer möglich Quelle: http://labs.appligent.com/pdfblog/linearization.php
14. xref 67 7 0000000016 00000 n 0000000687 00000 n 0000001193 00000 n 0000001347 00000 n 0000001530 00000 n 0000002053 00000 n 0000002621 00006 f Dateistruktur - XRef 67 7 – Objekt-ID und Anzahl der Objekte in dem Abschnitt [blank] 0000000016 – 10 Byte: Offset ab Dateibeginn / führende Nullen [blank] 00000 – 5 Byte: Versionsnummer / Init mit 00000 / Objekt 0 = 65535 [blank] n/f – f=„freies Objekt“ / n = „belegtes Objekt“ EOF oder [blank] + CR / LF Immer 20 Byte je Zeile Größenbeschränkung durch Offset: ca. 9,3 GB Quelle: http://www.iicm.tu-graz.ac.at/thesis/dekert.pdf
15. trailer « /Size 14346 /Info 14116 0 R /Root 14128 0 R /Prev 2737603 /ID[<6543940949663bb28cd1f1fbbbc93894> <f562340632c0b5acb04029e70d9c36db>] » startxref 0 %%EOF Dateistruktur - Trailer Acrobat Reader liest PDF-Dateien von hinten X-RefStart-Pos: zwischen startxref und EOF Trailer-Wörterbuch: Size - Anzahl der Einträge in der XRef; Prev – Offset von Dateibeginn bis zum vorherigen Xref Root- Objektnummer des catalogdictionary Encrypt- Objektnummer des encryptiondictionary; Info- Die Objektnummer des Wörterbuches, welches den Meta-Inhalt enthält (information dictionary); ID- ein Array, bestehend aus zwei Strings; die ID dient als eindeutige Identifikation der Datei Quelle: http://www.iicm.tu-graz.ac.at/thesis/dekert.pdf (Seite 49)
16. DocumentCatalog Angaben zur Dokumentenanzeige (zBPageMode) Page Tree(alle Seiten) Outline hierarchy: Lesezeichen <-> Seiten Articlethreads Textfluss für Artikel > 1 Seite Nameddestinations Namen <-> Objekte Interactive Forms Formularfelder 1 0 obj « /Type /Catalog /Pages 5 0 R /Outlines 10 0 R /PageMode /UseOutlines » endobj http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf (Seite 72) Quelle: http://www.iicm.tu-graz.ac.at/thesis/dekert.pdf
17. Page Tree 2 0 obj « /Type /Pages /Kids [ 4 0 R 10 0 R 24 0 R ] /Count 3 » endobj 4 0 obj « /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Resources « /Font « /F3 7 0 R /F5 9 0 R /F7 11 0 R » /ProcSet [/PDF] » /Contents 12 0 R /Thumb 14 0 R » endobj» Optimal: Balancedtree– Alle Blätter sind gleich weit von der Wurzel entfernt Beispiel: 3 Seiten mit /Kids definiert Einzelne Seiten mit /Type /Page /Parent - Verknüpfung mit Page Tree /MediaBox– Größe der Seite /Resources – dictionary /Contents – Referenz zu Content-Stream /Thumb – Referenz zu Thumbnails Sonstiges: Annotationen / Meta-Infos / Versionierung / Größenangabe (CrobBox, TrimBox, ArtBox, BlendBox)
18. Seitengeometrie MediaBox Größe des Ausgabemediums CropBox Größe für Ausgabe (Drucker, Bildschirm) BleedBox Anschnittrahmen (meist 3mm) TrimBox Endformat ohne Beschnitt ArtBox Objektrahmen Quelle: http://de.wikipedia.org/wiki/Portable_Document_Format#Angaben_der_Seitengeometrie
19. Schriftarten eingebettet vs. verlinkt Fonts TrueType / Type1 / Type3 / OpenType Ca 30-40 kB pro eingebetteter Schriftart Subsetting vs. Fullembedding Ähnliche Schriftart: Multiple Master Font Extrahieren nicht möglich
20. PDF/A - Überblick Ziel: Langzeitarchivierung 2005 veröffentlicht – 2007 korrigiert 2 Sub-Sets: PDF/A-1b– Level B (Basic) eindeutige visuelle Reproduzierbarkeit PDF/A-1a - Level A(Accessible) eindeutige visuelle Reproduzierbarkeit als auch Abbildbarkeit von Text nach Unicode und inhaltliche Strukturierung des Dokuments (ISO 19005-1) Vollständigkeit der Daten Alle Schriftarten und Bilder eingebettet Kennzeichnung als PDF/A-1 mit XMP Eindeutigkeit Farb-Definition Eindeutige Kodierung der Schrift Keine Alternativen Bilder Zugänglichkeit Verschlüsselung bzw. Sperren nicht erlaubt Keine Dynamischen Funktionen
21. PDF/A-1 a/b - Gemeinsamkeiten Basis für PDF/A-1: PDF 1.4 Metadaten müssen XMP-Konform sein Verschlüsselung: keine Sicherheitseinstellungen möglich: Das Öffnen/Verarbeiten muss auch ohne Passwort gewährleistet sein Farben: Alle Farben müssen gekennzeichnet sein, geräteabhängige Farbräume müssen per OutputIntent gekennzeichnet sein. Mischen von CMYK und RGB verboten. Tranzparenz: nicht zulässig PDF-Ebenen: Nicht zulässig Kompression: LZW und JPEG2000 geht nicht Fonts: müssen eingebettet sein (zumindest als Untergruppe) / Eindeutige Kodierung der Schrift Anmerkungen: Sound, Movie-Kommentare gehen nicht / Normale Text-Markierungen sind zulässig Keine Referenzierten Objekte (nicht eingebettet) Alternative Bilder nicht zulässig JavaScript nicht zulässig Formulare: Mit Einschränkungen möglich (zB keine versteckten Felder, keine Aktionen) Aktionen: nicht zulässig Kein Postscript
23. Ausblick: PDF/A-2 Enthält die Änderungen von PDF 1.5, 1.6 und 1.7 (ISO 19005-2) PDFA/A-1 sind automatisch PDF/A-2 kompatibel (aber nicht andersrum) PDF/A2 beruht nicht mehr auf der Adobe PDF Referenz sondern auf ISO 32000-1 Veröffentlichung noch für 2011 vorgesehen (Info lt. Ricoh Roadshow Mai 2011) Technisches Komitee: AIIM (http://www.aiim.org/Resources/Standards/Committees/PDFA)
24. Komprimierung von PDF/A Derzeit erlaubt: ZIP / JPEG / CCITT Nicht erlaubt: LZW, da Patent-Probleme Künftig erlaubt: JPEG2000 ca 30% höhere Kompressionsrate gegenüber JPEG JPEG: Schwächen bei Liniengrafiken, Texten, Cartoons behoben Idee: Ressourcen absplitten Quelle: http://www.pdf-tools.com/pdf/pdfa-langzeitarchivierung-iso-19005-pdf.aspx#PDFAprodukte Quelle: http://www.nets.rwth-aachen.de/content/teaching/proseminars/sub/2002_2003_ws_docs/jpeg.pdf
25. Metadaten XMP – Extensible MetadataPlatform Basiert auf RDF (Resource Description Framework) Verwendung zB bei PDF, JPG, PNG, MP3, MP4, usw… Verwendung von XMP-Schemata (http://www.adobe.com/products/xmp/pdfs/whitepaper.pdf) 2001: XMP von Adobe konzipiert (Teil von Acrobat 5.0) 2004: Zusammenarbeit mit anderen Firmen um neues Schema zu erstellen 2005: v 1.0 von XMP veröffentlicht 2007: Toolkit unter BSD-Lizenz freigegeben Fasst Properties zusammen z.B. Autor, Thema, Titel in DC Schema z.B. Besitzer, Zertifikat, Rechte in RightsManagement Schema Eindeutige Namespace-URI pro Schema z.B. DC Schema = http://purl.org/dc/elements/1.1/ Präfix: dc
26. XMP und PDF/A XMP zwingend bei PDF/A XMP-Metadaten sind als Stream in einem Objekt gespeichert Binary-Daten nicht erlaubt – Konvertierung zB mit Base64 Basieren auf XMP 2004 Erfordert gespiegelte Einträge zum Dokumentinfo Strenge Regeln für XMP Schema Vordefinierte Schemas in PDF/A Dublin Core: Standard-Eigenschaften (http://dublincore.org) (zBcontributor, creator, format, language, subject) XMP Basic: Beschreibende Eigenschaften (zBCreateDate, CreateTool, ModifyDate) XMP Rights Management XMP Media Management (zBScanning, History) Adobe PDF (zBKeywords, PDFVersion, Producer) XMP-Erweiterungen Erweiterungen sind Schemas „Extension Schema Container Schema“ Definieren neue Eigenschaften (Name, Beschreibung, Datentyp) Neue, komplexe Datentypen können definiert werden. Quellen: http://www.pdfa.org/doku.php?id=artikel:pdfa_und_metadaten_teil_4 Und http://nestor.sub.uni-goettingen.de/seminar_bundesarchiv/docs/04-Metadaten-KK.pdf
27. XMP-Toolkit XMP-Toolkit von Adobe (http://www.adobe.com/devnet/xmp.html) Sources und Samples sind in C++ und Java verfügbar Besteht aus 2 Teilen: XMPCore: zum erstellen und bearbeiten von XMP-Daten XMPFiles: zum auslesen von XMP-Daten <x:xmpmetaxmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04 "> <rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Descriptionrdf:about="„ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> <pdf:Producer>GPL Ghostscript 9.0</pdf:Producer> <pdf:Keywords/> </rdf:Description> <rdf:Descriptionrdf:about="„ xmlns:xmp="http://ns.adobe.com/xap/1.0/"> <xmp:ModifyDate>2011-05-23T17:23:33+02:00</xmp:ModifyDate> <xmp:CreateDate>2011-05-23T08:53:07+02:00</xmp:CreateDate> <xmp:CreatorTool>PDFCreator Version 1.2.0</xmp:CreatorTool> Weitere Infos Online XMP-Validator: http://www.pdflib.com/de/knowledge-base/xmp-metadaten/kostenloser-xmp-validator/ Überblick zu XMP: http://www.pdflib.com/de/knowledge-base/xmp-metadaten/ Detaillierte Spezifikation: http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf
28. Tagged PDF Grundlage für barrierefreie PDF-Dokumente Syntax ähnlich (X)HTML zB Lesezeichen, Alternativtexte für Bilder, Inhalte Strukturieren, usw Re-flow (Anpassung an das Lesegerät) Künftiger Standard: PDF/UA für barrierefreie Dokumente Nachträgliche Anpassung meist nur händisch möglich sehr Zeitaufwendig Weitere Infos: AIIM: http://www.aiim.org/Resources/Standards/Committees/PDFUA ISO: http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=240&ics3=30&csnumber=54564
29. Beschränkungen Seitengröße Bis Version 3: 45x45 Zoll (ca. 1,14 m) Bis Version 6: 200x200 Zoll (ca. 5,08 m) Seit Version 7: 15.000.000x15.000.000 Zoll (ca. 381 km) Seitenanzahl Lt. Spezifikation nicht begrenzt Dateigröße Bis pdf v1.5: Max. 10 GB (Danach unbegrenzt durch XRef-Streams) PDF/A: Beschränkung auf max. 2 GB
30. PDFs generieren Postscript-Umweg Anwendung Postscript PDF zB Adobe Distiller / Ghostscript (unzählige Wrapper verfügbar – zBRumborak) TIP: Es sollte ein spezieller PDF/A-Druckertreiber verwendet werden (zBeDocPrintProPDF/A http://www.pdf-signatur.at/pdf-und-pdfa-drucker/edocprintpro-pdfa.html) Scan + OCR + Konvertierung Direkt aus der Anwendung heraus Anwendung PDF Vorteil: Tagging kann übernommen werden zB Adobe PDF-Writer / OpenOffice / Scribus / pdfTex Tip: PDF-Writer umgeht Postscript und ist schneller als der Distiller Via APIs aus eigenen Anwendungen zBXpdf (C++) / PdfLIb (C) / Reportlab (Python) / iText, pjx, pdfbox (Java) / fpdf (PHP)
31. PDFs Generieren – via XML 2 Schritte zum Konvertieren: Transformation mit Hilfe eines XSLT-Stylesheets in das XSL-FO-Format Ein PDF-Prozessor (zum Beispiel Apache FOP (Open Source - http://xmlgraphics.apache.org/fop/), Altsoft Xml2PDF (kommerziell http://www.alt-soft.com/Products_xml2pdf.aspx) erzeugt daraus das fertige PDF-Dokument. <?xmlversion="1.0"?> <fo:rootxmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="A4" page-width="210mm" page-height="297mm"> <fo:region-bodyregion-name="xsl-region-body" margin="2cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="A4"> <!-- (in Versionen < 2.0 "master-name") --> <fo:flowflow-name="xsl-region-body"> <fo:block>Hallo Welt!</fo:block> </fo:flow> </fo:page-sequence> </fo:root> Quelle: http://de.wikipedia.org/wiki/Extensible_Stylesheet_Language_%E2%80%93_Formatting_Objects
33. PDFs validieren Was wird geprüft: für die entsprechenden Objekte werden auch die passenden Datentypen genutzt keine unnötige Konvertierung (zB Kreis zu Linienstücken) Wenig redundanter Code – Analyse der Content-Streams Bilder in gut komprimierenden Formaten (Analyse der XObjects) Tools zum Validieren: PDF ToolKit (http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) Xpdf (http://foolabs.com/xpdf/) Editoren (vim, notepad, …) Viewer (Acrobat Reader, Xpdf) Rasterizer (gs, pdftoppm, …) Preflight von Adobe Acrobat 3-Heights PDF Validator (http://www.pdf-tools.com/) Callas pdfaPilot 2 (http://www.callassoftware.com/callas/doku.php/de) Onlinedienst: http://www.validatepdfa.com/de/ Software-Übersicht: http://www.pdfa.org/doku.php?id=pdfa:produkte:validieren
34. PDF-Signaturen Ziel: Identität des Absenders feststellen PDF/A erlaubt nur Dokumentsignatur (PDF/A Konformität für sichtbare Signaturen - Schriftarten einbetten!) Eintragung ins „Signaturedictionary“ des Document-Catalogs Umgekehrtes Public-Key-Verfahren Tools zum Signieren: Zb Online via: http://www.buergerkarte.at/pdf-as/UpdateForm Weitere Tools: http://www.pdfa.org/doku.php?id=pdfa:produkte:signaturen
35. Verschlüsselung / Passwortschutz Verschlüsseln / Passwort bei PDF/A-Files lt. Standard nicht erlaubt Lösungsansatz: PDF-Files unverschlüsselt anlegen, und dann auf passwortgeschütztem Volume / Datenträger ablegen Bis v1.4: MD5, RC4-40-128Bit, Ab v1.4: PKCS#7 with SHA384, SHA512, RIPEMD160, DSA up to 4096-bit, RSA up to 4096-bits Tools (Variable Key-Länge): Acrobat Onboard VeryPDF (http://www.verypdf.com/encryptpdf/index.htm) PDF Encrypt Tool v2 (http://www.pdf-convert.com/pdf-encrypt-tool/index.htm) A-Pdf (http://www.a-pdf.com/security/password.htm) PDF-Toolkit (http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) Beispiel mit PDF-Toolkit: pdftk mydoc.pdf output mydoc.128.pdf owner_pwfoopass
36. Tipps & Tricks Herausforderungen beim Konvertieren: Farben: Farbprofile in der Quelle fehlen – Annahmen über Farbraum müssen getroffen werden Schriften: Fehlende Schriften müssen ersetzt werden. Voraussetzung: Text muss als Unicode vorliegen Transparenz: Verflachen von Transparenz ist komplex Gefahr von Informationsverlust Digitale Signaturen: Prüfen, Dokumentieren, Neu Signieren Platz sparen zB durch: Absplitten von Elementen (zB Schriftarten) und späterem Mergen (vgl. pdf-tools.com) Daten-Deduplizierung – zB von EMC
37. Tipps & Tricks Best Practice bei Umwandlung von E-Mails Probleme: Attachment-formate, Verschiedene Informationen (Header, Body, RTF, Text Only, usw…) Body und Anhänge einzeln konvertieren, dann in ein Dokument zusammenfassen. Signaturen auch einzeln behandeln. Best Practice bei Webseiten Problem: Druck-Ansicht oder Bildschirm-Ansicht Einen Browser als Referenz festlegen / evtl. Richtlinien für archivfreundliche Seitengestaltung / entweder Bildschirm oder Druckdarstellung / Zusätzliche Inhalte speichern (zB Texte, Bilder, Fonts, Hintergründe, Flash-Previews)
38. Doku / Literatur Allgemeiner PDF/A Überblick PDF/A Kompakt (gratis, aber registrierung nötig – recht guter überblick): http://www.pdfa.org/doku.php?id=pdfa:pdfa_kompakt Generelle Infos zu PDFs:http://www.prepressure.com/pdf/basics Diplomarbeit mit Allgemeinen Infos: http://www.iicm.tu-graz.ac.at/thesis/dekert.pdf PDF-Referenzen PDFlibCookbook: http://www.pdflib.com/pdflib-cookbook/ PDF-Bibel: http://www.pdflib.com/developer/technical-documentation/books/postscript-pdf-bibel/ ISO-Standard 19005-1:2005 (CHF 118,-): http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38920(Achtung: Corrigendum 1 beachten) PDF-Standard lt. ISO 3200: http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf SchnellerÜberblick der Dateistruktur: http://www.planetpdf.com/planetpdf/pdfs/seyboldseminars/ny02/king_jim_PDFAsPackageAnnot.pdf Langzeitarchivierung Nestor-Handbuch: eine kleine Enzyklopädie der digitalen Langzeitarchivierung: http://nestor.sub.uni-goettingen.de/handbuch/nestor-handbuch_23.pdf Sonstiges Bericht über die Genauigkeit von PDF/A-Validatoren von PDFLib: http://www.pdflib.com/fileadmin/pdflib/pdf/pdfa/2009-05-04-Bavaria-report-on-PDFA-validation-accuracy.pdf Gute Software-Übersichtsseite: http://www.pdfa.org/doku.php?id=pdfa:produkte PDF/A Competence Center: http://www.pdfa.org/