PDF-Struktur und PDF/A für Langzeitarchivierung<br />Schnell-Einstieg in das Thema PDF und PDF/A.<br />PDF-Dateistruktur <...
PDF = Portable Document Format<br />1993 von Adobe veröffentlicht (basierend auf Postscript)<br />Ziele:<br />Dateiformat ...
PDF-Versionen (bis 1.4)<br />
PDF-Versionen (seit 1.4)<br />Quelle: http://en.wikipedia.org/wiki/Portable_Document_Format<br />
PDF Sub-Sets<br />Quelle: http://de.wikipedia.org/wiki/Portable_Document_Format#Normen_und_Standards<br />
Einteilung der PDF-Struktur:<br />Objekte<br />Dateistruktur (Objektverweise)<br />Dokumentenstruktur (Objekte <-> PDF-Kom...
Boolesche Objekte (boolean): true / false<br />Zahlen (integer oder real)<br />Strings (Folge von Bytes - unsigned integer...
Null-Objekt<br />Arrays<br />[11.2 (Das ist ein Feld) /Label1 false]<br />Wörterbuch-Objekt (dictionary)<br />«<br />	/Typ...
Streams<br />Folge von Bytes<br />Inkrementelles Einlesen möglich<br />Keine Fixe Größe<br />Bestehen aus Wörterbuch-Objek...
Objekte – Streams - Filter<br />Filter (kaskadierend, können Optionen enthalten) - zB: <br />ASCIIHEX / ASCII85<br />LZW (...
Dateistruktur<br />Im wesentlichen 4 Teile:<br />Head (nur 1x)<br />PDF-Version<br />zB%PDF-1.4<br />Body (mehrfach)<br />...
Dateistruktur – Inkrementell<br />Inkrementelles Speichern<br />Schnelleres Speichern<br />Rollback leicht möglich<br />Er...
Dateistruktur - Linearization<br />Aka „Fast Web View“<br />Umstrukturiertung der Objekte: erste Seite am Dateianfang<br /...
xref<br />67 7<br />0000000016 00000 n<br />0000000687 00000 n<br />0000001193 00000 n<br />0000001347 00000 n<br />000000...
trailer<br />« /Size 14346<br />/Info 14116 0 R<br />/Root 14128 0 R<br />/Prev 2737603<br />/ID[<6543940949663bb28cd1f1fb...
DocumentCatalog<br />Angaben zur Dokumentenanzeige (zBPageMode)<br />Page Tree(alle Seiten)<br />Outline hierarchy: Leseze...
Page Tree<br />2 0 obj<br />«<br />/Type /Pages<br />/Kids [ 4 0 R 10 0 R 24 0 R ]<br />/Count 3<br />»<br />endobj<br />4...
Seitengeometrie<br />MediaBox<br />Größe des Ausgabemediums<br />CropBox<br />Größe für Ausgabe (Drucker, Bildschirm)<br /...
Schriftarten eingebettet vs. verlinkt<br />Fonts<br />TrueType / Type1 / Type3 / OpenType<br />Ca 30-40 kB pro eingebettet...
PDF/A - Überblick<br />Ziel: Langzeitarchivierung<br />2005 veröffentlicht – 2007 korrigiert<br />2 Sub-Sets:<br />PDF/A-1...
PDF/A-1 a/b - Gemeinsamkeiten<br />Basis für PDF/A-1: PDF 1.4<br />Metadaten müssen XMP-Konform sein<br />Verschlüsselung:...
PDF/A-1 a/b - Unterschiede<br />
Ausblick: PDF/A-2<br />Enthält die Änderungen von PDF 1.5, 1.6 und 1.7  (ISO 19005-2)<br />PDFA/A-1 sind automatisch PDF/A...
Komprimierung von PDF/A<br />Derzeit erlaubt: ZIP / JPEG / CCITT<br />Nicht erlaubt: LZW, da Patent-Probleme<br />Künftig ...
Metadaten<br />XMP – Extensible MetadataPlatform<br />Basiert auf RDF (Resource Description Framework)<br />Verwendung zB ...
XMP und PDF/A<br />XMP zwingend bei PDF/A<br />XMP-Metadaten sind als Stream in einem Objekt gespeichert<br />Binary-Daten...
XMP-Toolkit<br />XMP-Toolkit von Adobe (http://www.adobe.com/devnet/xmp.html)<br />Sources und Samples sind in C++ und Jav...
Tagged PDF<br />Grundlage für barrierefreie PDF-Dokumente<br />Syntax ähnlich (X)HTML<br />zB Lesezeichen, Alternativtexte...
Beschränkungen<br />Seitengröße<br />Bis Version 3: 45x45 Zoll (ca. 1,14 m)<br />Bis Version 6: 200x200 Zoll (ca. 5,08 m)<...
PDFs generieren<br />Postscript-Umweg <br />Anwendung  Postscript  PDF<br />zB  Adobe Distiller / Ghostscript (unzählige...
PDFs Generieren – via XML<br />2 Schritte zum Konvertieren:<br />Transformation mit Hilfe eines XSLT-Stylesheets in das XS...
PDF-Generieren – Delphi mit PDFLib<br />var<br />   p: TPDFCanvas;<br />begin<br />   p := TPDFCanvas.Create;<br />p.OpenF...
PDFs validieren<br />Was wird geprüft:<br />für die entsprechenden Objekte werden auch die passenden Datentypen genutzt <b...
PDF-Signaturen<br />Ziel: Identität des Absenders feststellen<br />PDF/A erlaubt nur Dokumentsignatur (PDF/A Konformität f...
Verschlüsselung / Passwortschutz<br />Verschlüsseln / Passwort bei PDF/A-Files lt. Standard nicht erlaubt<br />Lösungsansa...
Tipps & Tricks<br />Herausforderungen beim Konvertieren:<br />Farben: Farbprofile in der Quelle fehlen – Annahmen über Far...
Tipps & Tricks<br />Best Practice bei Umwandlung von E-Mails<br />Probleme: Attachment-formate, Verschiedene Informationen...
Doku / Literatur<br />Allgemeiner PDF/A Überblick<br />PDF/A Kompakt (gratis, aber registrierung nötig – recht guter überb...
Richard Gaun<br />Diplom-Wirtschaftsinformatiker<br />Mail: richard@gaun.eu<br />Fon: +43 (0) 680 / 123 87 87<br />Twitter...
Nächste SlideShare
Wird geladen in …5
×

PDF und PDF/A für Langzeitarchivierung

6.521 Aufrufe

Veröffentlicht am

PDF-Überblick, aufbau von PDF-Files.
Einsatz von PDF/A zur Langzeitarchivierung

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
6.521
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
23
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

PDF und PDF/A für Langzeitarchivierung

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

×