PDF-Dateiformat erklärt: Anatomie, Ebenen und Standards
Was steckt wirklich in einer PDF-Datei? Ein beschriftetes Diagramm und Glossar, das die vier physischen Abschnitte (Header, Body, xref, Trailer), die sechs Inhaltsebenen (Text, Bilder, Schriftarten, Anmerkungen, Vektoren, Signaturen), Metadaten und die darauf aufbauenden ISO-Standards (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT) abdeckt.
Eine PDF-Datei ist nicht nur eine Sache. Sie ist ein binärer Container mit einer bestimmten Struktur auf der Festplatte, einer Reihe von Inhaltsebenen, die in diesem Container gestapelt sind, und einer Familie von ISO-Standards, die auf der Basisspezifikation aufbauen. Öffnen Sie eine in einem Hex-Editor, und die Struktur ist in den ersten Zeilen im Klartext sichtbar. Öffnen Sie eine in einem Viewer, und die Ebenen werden als eine einzige Seite gerendert.
Diese Anleitung ist eine beschriftete Referenz: die physische Dateistruktur, die Inhaltsebenen, die ein Body enthält, die Metadaten, die alles umgeben, und die Standards (PDF/A, PDF/X, PDF/UA, PDF/E, PDF/VT), die sie für bestimmte Anwendungsfälle einschränken.

Möchten Sie dieses Diagramm auf Ihrem Blog verwenden? Kopieren Sie diesen Einbettungscode:
Die vier physischen Abschnitte
Jede PDF-Datei auf der Festplatte hat die gleiche viergeteilte Struktur, in dieser Reihenfolge:
1. Header
Die erste Zeile der Datei. Beginnt immer mit %PDF- gefolgt von einer Versionsnummer:
%PDF-1.7Die Versionen reichen von 1.0 (veröffentlicht 1993) bis 2.0 (veröffentlicht 2017, aktuell). Dem Header folgt eine Kommentarzeile mit Binärbytes, die FTP und andere Transporttools signalisieren, dass es sich um eine Binärdatei handelt.
2. Body - Indirekte Objekte
Der Großteil der Datei. Jede Seite, Schriftart, jedes Bild und jede Anmerkung ist ein nummeriertes indirektes Objekt:
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /Contents 4 0 R /Resources << ... >> >>
endobjJedes Objekt hat eine ID (die Zahl vor 0 obj), eine Generierungsnummer (0, verwendet für inkrementelle Updates) und eine Nutzlast zwischen << und >> für Dictionaries oder stream und endstream für Binärdaten (Bilddaten, Schriftartendaten, komprimierte Inhalte).
Objekte verweisen aufeinander mit der Syntax <id> <gen> R (z. B. bedeutet 3 0 R "Objekt 3, Generation 0"). So verweist eine Seite auf die Schriftart, die sie verwendet, oder ein Katalog verweist auf die Wurzel des Seitenbaums.
3. Querverweistabelle (xref)
Eine Byte-Offset-Lookup-Tabelle. Für jedes Objekt im Body zeichnet die xref seine absolute Byte-Position in der Datei auf:
xref
0 6
0000000000 65535 f
0000000017 00000 n
0000000089 00000 n
0000000172 00000 n
0000000299 00000 n
0000000453 00000 nDies ermöglicht den wahlfreien Zugriff auf PDFs. Ein Viewer kann die xref lesen, direkt zum Byte-Offset von Objekt 3 springen und diese Seite rendern, ohne den Rest der Datei zu parsen. Deshalb öffnen sich PDFs eines einzelnen Kapitels sofort, auch wenn die Quelldatei 500 Seiten hat.
4. Trailer
Der letzte Abschnitt. Teilt dem Parser mit, wo die xref zu finden ist und welches Objekt die Wurzel ist:
trailer
<< /Size 6 /Root 1 0 R /Info 7 0 R >>
startxref
1893
%%EOFDer Wert von startxref ist der Byte-Offset der xref-Tabelle. Das %%EOF-Marker ist das tatsächliche Ende der Datei. Trailer ermöglichen inkrementelle Updates: Das Anhängen einer neuen xref + Trailer am Ende ermöglicht das Hinzufügen von Objekten, ohne die gesamte Datei neu schreiben zu müssen.
Die sechs Inhaltsebenen
Innerhalb des Body werden Inhalte über sechs Ebenentypen gespeichert. Jede gerenderte PDF-Seite ist eine Zusammensetzung dieser Ebenen:
1. Text
Glyphenpositionsbefehle und Schriftartreferenzen, keine Textzeichenfolgen. Eine PDF speichert Anweisungen wie "Zeichne Glyphe 42 aus Schriftart F3 an Position (120, 540)" anstelle von "zeichne den Buchstaben A hier". Deshalb ist Text auswählbar und durchsuchbar: Der Viewer ordnet Glyphen-IDs über eine ToUnicode-Zuordnung (oder eine CMap für CJK-Schriftarten) auf Unicode-Codepunkte zurück.
Wenn einem Text eine ToUnicode-Zuordnung fehlt, erhalten Sie das klassische Problem "PDF mit auswählbarem Text, der als Müll kopiert wird". Der Text ist sichtbar, aber die Glyphe-zu-Unicode-Zuordnung ist fehlerhaft oder fehlt.
2. Bilder
Gespeichert als eingebettete Streams in einem von mehreren Formaten:
- JPEG (DCTDecode-Filter): Fotos, am häufigsten
- JPEG2000 (JPXDecode): höhere Komprimierung, weniger häufig
- PNG-Äquivalent (FlateDecode + Predictor): Screenshots, Strichzeichnungen
- CCITT Group 4 (CCITTFaxDecode): Schwarz-Weiß-gescannter Text, verwendet in Archivscans
- JBIG2 (JBIG2Decode): bilevel Bilder, häufig in OCR-Dokumenten
Bilder können ohne Beeinträchtigung anderer Inhalte heruntergetastet, neu komprimiert oder ersetzt werden.
3. Schriftarten
Eingebettet als vollständige Schriftartprogramme, Teilmengen (nur verwendete Glyphen enthalten) oder nach Namen referenziert (muss auf dem System des Betrachters installiert sein). Subset ist Standard - es reduziert die Dateigröße drastisch. Unterstützte Schriftartformate: Type1, TrueType, OpenType und CIDFont (für CJK).
Wenn eine Schriftart referenziert, aber nicht eingebettet und nicht auf dem System des Betrachters installiert ist, ersetzt der Betrachter eine ähnliche Schriftart - die normalerweise falsch aussieht. PDF/A erfordert, dass alle Schriftarten eingebettet sind, um dies zu verhindern.
4. Anmerkungen
Hervorhebungen, Kommentare, Links, Stempel, Wasserzeichen und Formularfelder sind alles Anmerkungen. Sie werden über den Seiteninhalt gelegt und können hinzugefügt, bearbeitet oder entfernt werden, ohne die zugrunde liegende Seite zu ändern.
Formularfelder sind ein Sonderfall: eine interaktive Widget-Anmerkung (der sichtbare Teil) plus ein Feld-Dictionary (der Datenteil). Wenn Sie ein Formular ausfüllen und speichern, ändern sich nur die Feld-Dictionaries - die Seite selbst bleibt unverändert.
5. Vektorgrafiken
Linien, Formen, Kurven und Pfade, die mit PostScript-ähnlichen Operatoren (moveto, lineto, curveto) gezeichnet werden. Unendlich skalierbar ohne Qualitätsverlust. Die meisten CAD-Exporte, Diagramme und Grafiken in PDFs sind Vektorgrafiken.
6. Digitale Signaturen
PKI-gestützte Signaturen, die an Byte-Bereiche der Datei gebunden sind. Das Signatur-Dictionary gibt an "Bytes 0 bis 12.547 und 14.200 bis zum Ende der Datei sind signiert" - ein kleiner Bereich in der Mitte ist für den Signaturwert selbst reserviert. Jede Änderung an den signierten Byte-Bereichen macht die Signatur ungültig, wodurch PDF Manipulationen nach der Signatur erkennt.
Einige PDFs haben mehrere Signaturen, die als inkrementelle Updates geschichtet sind - jeder Unterzeichner signiert die Datei, wie sie beim Erhalt existierte, und bewahrt die Kette.
Metadaten: Zwei parallele Systeme
PDF hat zwei Metadatensysteme, die oft nicht übereinstimmen:
Standard-/Info-Dictionary
Gespeichert im Trailer. Felder: Title, Author, Subject, Keywords, Creator (die App, mit der der Benutzer das Dokument erstellt hat), Producer (die App, die die PDF generiert hat), CreationDate, ModDate. Klartext-Strings, leicht lesbar mit jedem PDF-Tool.
XMP-Metadaten-Stream
Ein separater XML-Stream (Adobe XMP, basierend auf RDF/XML), der reichhaltigere Schemata unterstützt: Dublin Core, IPTC, benutzerdefinierte domänenspezifische Schemata (Farbprofile, Copyright-Registrierungen, Manuskriptversionierung).
Moderne PDF-Generatoren schreiben in beide. Alte PDFs haben nur /Info. Einige PDFs haben veraltete /Info-Daten aus einer früheren Version und genaue XMP-Daten aus einer aktuellen Bearbeitung - oder umgekehrt. Überprüfen Sie bei der Prüfung von PDFs auf Konformität oder Forensik beide.
Auf PDF basierende ISO-Standards
Die Basisspezifikation von PDF ist ISO 32000. Mehrere abgeleitete Standards schränken PDF für bestimmte Anwendungsfälle ein:
| Standard | Verwendung | Einschränkungen |
|---|---|---|
| PDF/A | Langzeitarchivierung | Alle Schriftarten eingebettet, kein JavaScript, keine Audio-/Videodateien, geräteunabhängige Farbräume. Konformitätsstufen: PDF/A-1, A-2, A-3 (ermöglicht Dateianhänge) |
| PDF/X | Druckproduktion | CMYK-Farben, eingebettete Schriftarten und Farbprofile, keine Transparenz (PDF/X-1a) oder kontrollierte Transparenz (PDF/X-4) |
| PDF/UA | Barrierefreiheit | Getaggter Strukturbaum, Sprachmetadaten, Alternativtexte für Bilder, logische Lesereihenfolge |
| PDF/E | Ingenieurwesen | 3D-Modelle (U3D, PRC-Formate), CAD-spezifische Metadaten |
| PDF/VT | Variable Transaktionsdruck | Optimiert für hochvolumige personalisierte Mailings |
Eine PDF kann mehrere Standards gleichzeitig erfüllen - PDF/A-2u (Archivierung mit Unicode-Mapping) plus PDF/UA (Barrierefreiheit) ist für staatliche und juristische Archive üblich.
Linearisierte PDFs (Web-optimiert)
Eine "linearisierte" oder "web-optimierte" PDF-Datei ordnet den Body neu an, sodass die Objekte der ersten Seite früh in der Datei erscheinen. Ein Web-Viewer kann Seite 1 rendern, nachdem nur die ersten ca. 50 KB heruntergeladen wurden, anstatt auf die gesamte Datei zu warten. Der Trailer wird am Anfang dupliziert, plus eine Hinweistabelle, die dem Viewer mitteilt, wo jede Seite beginnt.
Die meisten modernen PDF-Generatoren unterstützen die Linearisierung als Option "Für Web speichern". Das Format erhöht die Dateigröße um 2-5% im Austausch für eine schnelle Anzeige der ersten Seite über langsame Verbindungen.
Verschlüsselung und Berechtigungen
PDFs können mit einem Passwort (oder Zertifikaten) verschlüsselt und mit granularen Berechtigungen versehen werden: Drucken, Text kopieren, Ändern, Formulare ausfüllen, Extrahieren für Barrierefreiheit. Die Verschlüsselung wird im /Encrypt-Dictionary des Trailers gespeichert.
Die Stärke der Verschlüsselung hat sich weiterentwickelt: RC4 40-Bit (frühe PDFs, heute trivial zu knacken), RC4 128-Bit (immer noch schwach), AES-128, AES-256. Die ursprüngliche RC4-Implementierung von Acrobat 5 wurde 2001 öffentlich geknackt; moderne PDF-Verschlüsselung (AES-256, PDF 2.0) ist bei Verwendung starker Passwörter solide.
Hinweis: "Berechtigungen" sind ratsam. Ein Viewer, der sie respektiert, wird sie durchsetzen. Ein Viewer, der sie ignoriert (oder ein Tool, das die Verschlüsselung entfernt), tut dies nicht.
Wie PDFSub PDFs liest
PDFSub verarbeitet PDFs mithilfe der PDFium-Bindung von Rust (die gleiche Engine, die den PDF-Viewer von Chromium antreibt) plus PaddleOCR für gescannte Dokumente. Detaillierte Architekturinformationen und ein Vergleich mit Cloud-basierten Tools finden Sie unter Browser vs. Cloud PDF-Sicherheit.
Zum Konvertieren von PDFs in andere Formate unter Beibehaltung der oben beschriebenen Struktur:
- PDF in Excel - extrahiert Text + Tabellen, behält Koordinaten bei
- OCR PDF - fügt gescannten PDFs eine durchsuchbare Textebene hinzu
- PDF in Word - formatiert Text in bearbeitbare Absätze um
- PDF komprimieren - tastet Bilder herunter, subsettet Schriftarten
Für Archivierungs-Workflows siehe Wie konvertiert man PDF in PDF/A.
Weiterführende Lektüre
- ISO 32000-2 (PDF 2.0 Spezifikation) - maßgebliche Referenz, kostenpflichtig
- Adobe PDF Reference Archives - kostenlose Referenz für PDF 1.7
- PDF Association - Branchenarbeitsgruppe, kostenlose Artikel und Konformitäts-Testdateien
Für PDF-spezifische Themen: PDF Compliance Guide for Lawyers, PDF/A Conversion Guide.