PDF 2.0: Was sich geändert hat
ISO 32000-2 Evidence: Standard-backed
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“PDF 2.0 ist ISO 32000-2. Es ist die erste PDF-Spezifikation, die vollständig in ISO-Verantwortung liegt und nicht mehr bei Adobe. Im Wesentlichen ist sie eine Konsolidierung und Bereinigung von 1.7, keine dramatische Neuerfindung. Diese Seite erklärt, was sich tatsächlich geändert hat, welche Änderungen Sie in der Praxis spüren werden und wie NextPDF standardmäßig die 2.0-Baseline anvisiert, dabei aber weiterhin ältere Dateistruktur schreiben kann, wenn ein Profil dies verlangt.
Warum das wichtig ist
Abschnitt betitelt „Warum das wichtig ist“„PDF 2.0“ klingt, als müsste es ein anderes Format sein. Das ist es nicht. Eine 2.0-Datei verwendet dasselbe Objektmodell, dieselbe Xref und denselben Trailer wie 1.7; dadurch unterschätzt man leicht, was sich tatsächlich geändert hat. Die Änderungen, die Probleme verursachen, sind nicht die schlagzeilenträchtigen Funktionen. Es sind die Verschärfungen: Regeln, die in 1.7 optional waren und jetzt erwartet werden, sowie Funktionen, die stillschweigend entfernt wurden. Ein Dokument, das als 1.7-Datei vollkommen gültig war, kann als 2.0-Datei nicht konform sein, ohne dass ein einziger sichtbarer Unterschied entsteht.
Der andere Grund ist die Richtung. NextPDF ist eine PDF-2.0-Engine. Sobald Sie wissen, was 2.0 erwartet und wo es bewusst von 1.7 abweicht, können Sie nachvollziehen, warum die Engine manche Dinge ablehnt, Schriften strenger einbettet und standardmäßig einen Cross-Reference-Stream statt einer Tabelle verwendet.
Die Kurzfassung
Abschnitt betitelt „Die Kurzfassung“- PDF 2.0 = ISO 32000-2, unter ISO-Verantwortung, baut auf 1.7 auf (ersetzt es nicht).
- Der Header wird zu
%PDF-2.0; ein konformer Writer gibt die Version als 2.0 im Header oder im Katalog/Versionan. - Der größte Teil der Dateistruktur ist unverändert — dieselben indirekten Objekte, derselbe Trailer, dieselbe
startxref/%%EOF-Disziplin. - Der Cross-Reference-Stream ist der natürliche 2.0-Standard; die klassische 20-Byte-Tabelle ist weiterhin zulässig und wird von manchen PDF/A-Profilen weiterhin verlangt.
- 2.0 fügt Dinge hinzu (zum Beispiel reichhaltigere Strukturen für zugehörige Dateien und Dokumentteile, stärkere Verschlüsselung über die AES-256-GCM-Erweiterung) und entfernt Dinge (einige Struktur-Tags; verschärfte Erwartungen an die Schrifteneinbettung; veraltete CJK-Zeichenkollektionen).
- NextPDF visiert standardmäßig 2.0 an und kann 1.7/1.4-Struktur serialisieren, wenn ein Konformitätsprofil dies erfordert.
Wie NextPDF damit umgeht
Abschnitt betitelt „Wie NextPDF damit umgeht“Die Version ist eine Entscheidung, die an genau einer Stelle ausgedrückt wird: in der Serialisierungsstrategie.
Pdf20StreamStrategy (src/Writer/Pdf20StreamStrategy.php) schreibt den %PDF-2.0-Header, weist /2.0 als Katalogversion aus und gibt einen komprimierten Cross-Reference-Stream aus. Sie trägt außerdem die 2.0-Schriftenverschärfung direkt mit. Unter dem 2.0-Profil kann sie eine nicht eingebettete Standard-Type-1-Schrift erzwingen, statt nur davor zu warnen, weil der Standard diese Schriften jetzt eingebettet erwartet. Die beiden Tabellenstrategien (Pdf17TableStrategy, Pdf14TableStrategy) existieren genau deshalb, weil manche Profile die ältere Form benötigen. PDF/A-2/-3 schreiben die traditionelle Cross-Reference-Tabelle vor, und PDF/A-1 verbietet zusätzlich Objekt- und Cross-Reference-Streams. Alle drei Strategien implementieren dieselbe PdfSerializationStrategy-Schnittstelle, sodass der Writer darüber identisch bleibt. Nur die Trailer-/Xref-Form ändert sich.
Stärkere Verschlüsselung ist ähnlich bewusst eingebunden. PdfXrefWriter (src/Writer/PdfXrefWriter.php) propagiert ein AES-256-GCM-Opt-in (die ISO/TS-32003-Erweiterung zu 2.0) in das Verschlüsselungs-Dictionary, sodass die ausgegebenen Einträge für Handler-Version und Cipher-Modus zu den tatsächlich erzeugten Bytes passen. Die Engine bewirbt nicht den einen Cipher, um dann einen anderen zu schreiben.
So ist das Gesamtdesign angelegt: 2.0 ist der Standard. Ältere Struktur ist absichtlich erreichbar, niemals zufällig. Und dort, wo 2.0 eine Regel verschärft, kann NextPDF die strengere Linie halten, statt sie stillschweigend aufzuweichen.
- Step 1 of 3: ISO 32000-1 PDF 1.7 — the Adobe-authored base, adopted by ISO
- Step 2 of 3: ISO 32000-2 PDF 2.0 — ISO-owned consolidation, tightening, and additions
- Step 3 of 3: ISO/TS 32003 AES-256-GCM (AESV4) — an encryption extension to PDF 2.0
Was die Belege sagen
Abschnitt betitelt „Was die Belege sagen“Die Versionsangabe ist normativ. Spec: ISO 32000-2, §7.5.2 ISO 32000-2 §7.5.2 legt fest, dass ein Prozessor, der eine konforme Datei schreibt, die Version als 2.0 identifizieren muss — entweder im Header oder als Katalogeintrag /Version — und dass der Header %PDF-1.n oder %PDF-2.n lautet, gefolgt von einer einzelnen Zeilenende-Markierung.
Spec: ISO 32000-2, §7.7.2 ISO 32000-2 §7.7.2 ergänzt, dass der Katalog
/Version eine frühere Header-Version überschreibt, was genau das ist, was
eine inkrementelle Versionsanhebung möglich macht. Evidence: Standard-backed
Dass 2.0 eine Konsolidierung und keine Neufassung ist, zeigt sich an dem, was es beibehält: Der Cross-Reference-Stream (/Type /XRef) ist derselbe Mechanismus, der in PDF 1.5 eingeführt und als 2.0-Standard übernommen wurde ( Spec: ISO 32000-2, §7.5.8 ISO 32000-2 §7.5.8 ). Die Struktur aus indirekten Objekten, Trailer und startxref ist gegenüber der Beschreibung auf der vorherigen Seite unverändert.
Die Änderungen, die ins Gewicht fallen, sind Entfernungen und Verschärfungen. Der Standard hält fest, dass sechs Standard-Strukturelemente, die im Standard-Strukturnamensraum von PDF 1.7 vorhanden sind, nicht Teil des Namensraums von PDF 2.0 sind — Art, BlockQuote, TOC, Reference, BibEntry und Code ( Spec: ISO 32000-2, Annex L.3 ISO 32000-2 Annex L.3 , wobei die Namensraumunterschiede gemäß Spec: ISO 32000-2, §14.8.6 ISO 32000-2 §14.8.6 definiert sind). Außerdem verschärft er die vierzehn Standard-Type-1-Schriften: Während 1.0–1.7 bei diesen Dictionaries fehlende Metrik-Einträge zuließen, streicht 2.0 diese Erlaubnis ( Spec: ISO 32000-2, §9.6.2.1 ISO 32000-2 §9.6.2.1 ). Und er überarbeitet die vordefinierten CJK-Zeichenkollektionen. Zum Beispiel ist Adobe-Korea1 in 2.0 veraltet; Adobe-KR wird hinzugefügt. Keine dieser Änderungen verändert, wie eine bestehende Seite aussieht. Alle können verändern, ob sie konform ist.
| Kategorie | Beispiele (2.0 vs. 1.7) | Ändert sich das Erscheinungsbild? | Warum es wichtig ist |
|---|---|---|---|
| Unverändert | Indirekte Objekte, Trailer, startxref/%%EOF, Xref-Streams | — | 2.0 ist dasselbe Objektmodell; die meisten Werkzeuge funktionieren weiterhin |
| Hinzugefügt | Reichhaltigere Strukturen für zugehörige Dateien / Dokumentteile; AES-256-GCM-Verschlüsselung (ISO/TS 32003) | Nein | Neue Funktionen, für die Sie sich entscheiden; von älteren Readern gefahrlos ignoriert |
| Verschärft | Standard-14-Schriften werden eingebettet erwartet; Metriken nicht mehr weglassbar | Nein | Eine gültige 1.7-Datei kann eine nicht konforme 2.0-Datei sein |
| Entfernt | Sechs Strukturelemente des 1.7-Namensraums (Art, BlockQuote, TOC, Reference, BibEntry, Code); veraltete CJK-Kollektionen (zum Beispiel Adobe-Korea1) | Nein | Stillschweigend: Sichtbar signalisiert nichts den Verlust der Konformität |
Die PDF-2.0-Änderungen, die ins Gewicht fallen, sind überwiegend unsichtbar: Ergänzungen, für die Sie sich entscheiden, und Verschärfungen/Entfernungen, die die Konformität ändern, ohne auch nur ein einziges gerendertes Pixel zu verändern.
Praktisches Beispiel
Abschnitt betitelt „Praktisches Beispiel“Der einzige sichtbare Unterschied zwischen einer 2.0-Datei und einer 1.7-Datei besteht oft aus zwei Zeilen — dem Header und der Katalogversion — obwohl sich die dahinterstehenden Konformitätsregeln erheblich unterscheiden.
%PDF-2.0 % was %PDF-1.7...1 0 obj<< /Type /Catalog /Version /2.0 % catalog states 2.0; overrides header if later /Pages 2 0 R >>endobj...% Cross-reference STREAM is the 2.0 default (was often a 20-byte table)99 0 obj<< /Type /XRef /Size 100 /W [1 2 2] /Filter /FlateDecode /Root 1 0 R >>stream<binary xref entries>endstreamendobjstartxref12345%%EOFEin Reader sieht %PDF-2.0 und ein /Version /2.0. Was er nicht sieht — was ein Konformitätsprüfer aber erkennt — ist, dass von dieser Datei nun erwartet wird, ihre Standardschriften einzubetten, und dass sie die von 2.0 entfernten Struktur-Tags nicht verwenden darf. Nur wenige Bytes unterscheiden sich. Die Regeln, die sich unterscheiden, sind es nicht.
Verbreiteter Irrtum
Abschnitt betitelt „Verbreiteter Irrtum“Die Falle lautet: „Wir geben PDF 2.0 aus, also sind wir konformer als zuvor.“ %PDF-2.0 zu schreiben, ist eine Behauptung, keine Garantie. Eine Datei kann den 2.0-Header tragen und 2.0 dennoch verletzen — indem sie eine nicht eingebettete Standardschrift referenziert oder eine von 2.0 entfernte Funktion verwendet — genau auf die Weise, die unter 1.7 toleriert wurde. Die Versionsmarkierung setzt den Maßstab, an dem die Datei gemessen wird. Sie sorgt nicht dafür, dass die Datei ihn erfüllt. Der spiegelbildliche Fehler besteht in der Annahme, eine 1.7-Datei funktioniere als 2.0, indem man den Header ändert: Meist wird sie identisch gerendert und scheitert an der Konformität, weil die Verschärfungen real sind, auch wenn sie unsichtbar sind.
Grenzen und Abgrenzungen
Abschnitt betitelt „Grenzen und Abgrenzungen“Die 2.0-Baseline anzuvisieren bedeutet, dass NextPDF standardmäßig die 2.0-Dateistruktur verwendet und die verschärften Regeln von 2.0 halten kann. Es bedeutet nicht, dass jede optionale 2.0-Funktion implementiert ist oder dass die Ausgabe eines 2.0-Headers ein Dokument gegen PDF/A, PDF/UA oder ein anderes Profil zertifiziert. Das sind eigenständige, strengere Konformitätsziele, die auf die Basisspezifikation aufgesetzt werden, jedes mit eigener Validierung.
Diese Seite ist eine praktische Orientierung zu den Versionsunterschieden, kein vollständiges Änderungsprotokoll von ISO 32000-2 gegenüber 32000-1. Wo eine bestimmte 2.0-Funktion oder -Veraltung das Verhalten der Engine steuert, ist dieses Verhalten an die jeweilige Klausel gebunden. Diese Seite ordnet die Landschaft ein, statt jeden klauselbezogenen Unterschied aufzuzählen.
Mini-FAQ
Abschnitt betitelt „Mini-FAQ“Ist PDF 2.0 abwärtskompatibel mit 1.7-Readern? Weitgehend, für die unveränderte Struktur. Neue 2.0-Funktionen sind generell so gestaltet, dass ein älterer Reader ignorieren kann, was er nicht versteht. Aber eine reine 2.0-Funktion wird von einem 1.7-Reader nicht berücksichtigt.
Gewinnt der Header oder der Katalog-/Version? Der Katalog-/Version hat Vorrang, wenn er eine spätere Version als der Header nennt. Das ist es, was es einem inkrementellen Update erlaubt, die Version einer Datei anzuheben, ohne den Header neu zu schreiben.
Warum verwendet NextPDF standardmäßig einen Cross-Reference-Stream und keine Tabelle? Der Cross-Reference-Stream ist der natürliche PDF-2.0-Mechanismus — kompakt und in der Lage, komprimierte Objekte zu indizieren. Die 20-Byte-Tabelle wird weiterhin geschrieben, wenn ein Profil (insbesondere einige PDF/A-Stufen) dies erfordert.
Verwandte Dokumente
Abschnitt betitelt „Verwandte Dokumente“- Was ein PDF tatsächlich ist — das Objektmodell und die Xref, die PDF 2.0 aus 1.7 beibehält.
- Die Standardlandschaft — wo ISO 32000-2 unter den von NextPDF verfolgten Standards eingeordnet ist und wie aus einer Klausel Verhalten wird.
- Schriften: der schwierige Teil — die Verschärfung der Schrifteneinbettung ist eine der 2.0-Änderungen, die Sie tatsächlich spüren.
Glossar
Abschnitt betitelt „Glossar“- PDF 2.0 — die als ISO 32000-2 standardisierte PDF-Spezifikation, die erste Ausgabe unter ISO-Verantwortung statt bei Adobe.
- ISO 32000-1 — die ISO-Standardisierung von Adobes PDF 1.7; die Basis, auf der PDF 2.0 aufbaut.
- ISO/TS 32003 — eine technische Spezifikation, die PDF 2.0 um AES-256-GCM-Verschlüsselung (AESV4) erweitert.
- Katalog-
/Version— der Eintrag im Dokumentkatalog, der die PDF-Version angibt; überschreibt den Header, wenn er eine spätere Version nennt. - Cross-Reference-Stream — der Cross-Reference-Mechanismus von PDF 1.5+ / 2.0 (
/Type /XRef); der Standard von NextPDF, wobei die klassische Tabelle für ältere Profile weiterhin verfügbar ist. - Verschärfung — eine Regel, die in 1.7 optional oder erlaubt war und in 2.0 erwartet oder verlangt wird und damit die Konformität ändert, ohne das Erscheinungsbild zu ändern.