Zum Inhalt springen

PDF 2.0-Baseline: ISO 32000-2-Klauseln, die NextPDF implementiert

Grenzaussage. NextPDF implementiert die zitierten Klauseln; volle ISO 32000-2-Konformität wird nicht pauschal zugesichert.

ISO 32000-2:2020 ist der Basisstandard für PDF 2.0. Die Standardausgabe von NextPDF Core (ConformanceMode::Plain) ist unbeschränktes PDF 2.0: ein %PDF-2.0-Header, ein Dokumentkatalog, eine Querverweisstruktur und ein konformer Trailer. Diese Seite dokumentiert die Baseline-Klauseln, die NextPDF implementiert, sowie die ausdrückliche Grenze. Die Bibliothek implementiert die zitierten Klauseln. Sie erhebt keinen pauschalen Anspruch, „voll ISO 32000-2-konform“ zu sein. Eine konforme Datei ist eine Datei, die ein konformer Reader gemäß dem Standard verarbeiten kann. Diese Feststellung trifft ein Prüfer; sie ist kein Flag, das die Bibliothek setzt.

Terminal-Fenster
composer require nextpdf/core:^3

Die PDF 2.0-Baseline-Ausgabe ist die Core-Voreinstellung; ein Profil-Aufruf ist nicht nötig. ConformanceMode::Plain ist der Standard-Diskriminator; die Profile PDF/A-4, PDF/UA-2, PDF/X und ZUGFeRD sind eingeschränkte Teilmengen, die auf dieser Baseline aufbauen.

Jedes NextPDF-Dokument ist zunächst eine PDF 2.0-Datei, bevor ein Profil angewendet wird. Der Writer erfüllt die strukturellen Pflichten, die ISO 32000-2 einer konformen Datei auferlegt:

  • Dokumentkatalog — §7.7.2: das Wurzelobjekt, auf das der Trailer-Eintrag /Root verweist; in jeder Ausgabe vorhanden.
  • Querverweisstruktur — §7.5.8: eine Querverweistabelle oder ein Querverweis-Stream zur Lokalisierung jedes Objekts.
  • Trailer — §7.5.5: das Trailer-Dictionary, das eine konforme Datei führen muss, einschließlich des Datei-Identifiers /ID. Die /ID ist dateieindeutig und wird für den Vergleich herausnormalisiert. Deshalb gilt für die meisten Ausgaben mit mehreren Objekten reproducibility_profile: structural, nicht bitweise.
  • Logische Struktur — §14.7.2: bei aktiviertem getaggtem Modus die StructTreeRoot-Baseline, auf der das PDF/UA-2-Profil aufbaut.
  • Versionserweiterung — §7.12: wenn eine Entwickler-Erweiterung deklariert ist: der Mechanismus aus Extensions-Dictionary / Entwickler-Präfix.

NextPDF implementiert diese Klauseln. Es führt keine vollständige ISO 32000-2-Konformitätsbewertung durch. Das bleibt Aufgabe eines externen Validators (zum Beispiel des Arlington-Grammatikprüfers oder von veraPDF). NextPDF\Compliance liefert die Byte-Stream-Gegenprüfungen (ArlingtonValidator), die strukturelle Abweichungen sichtbar machen. Sie unterstützen die Verifizierung, sind aber kein Zertifikat.

SymbolWirkung
ConformanceMode::PlainStandard — unbeschränkte PDF 2.0-Ausgabe.
ConformanceMode::requiresPdf17(): boolFalse für PDF 2.0-Modi; der Writer gibt einen %PDF-2.0-Header aus.
NextPDF\Compliance\Validator\ArlingtonValidatorGrammatik-Gegenprüfung gegen das Arlington-PDF-Modell (unterstützt die Verifizierung).
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/baseline.pdf';
$doc = Document::createStandalone(); // ConformanceMode::Plain — PDF 2.0
$doc->setTitle('PDF 2.0 baseline');
$doc->writeHtml('<h1>Hello PDF 2.0</h1><p>Unconstrained baseline output.</p>');
$doc->save($out);
echo "Wrote {$out} (%PDF-2.0). Validate structure with an external checker.\n";

Im Produktionsbetrieb besteht die Baseline-Haltung darin, in der CI einen externen Strukturvalidator (Arlington / veraPDF) gegen repräsentative Ausgaben laufen zu lassen und anhand seines Reports Gates zu setzen. Die Bibliothek gibt die Struktur aus; der Prüfer entscheidet, ob sie konform ist. Die Bibliothek erhebt keinen pauschalen Konformitätsanspruch.

  • /ID ist dateieindeutig. Eine Baseline-Ausgabe, die einen Trailer-/ID, eine /CreationDate oder Font-Subset-Präfixe enthält, ist nicht byte-stabil. Vergleichen Sie mit dem strukturellen Profil (qpdf-normalize), nicht mit einem rohen sha256.
  • Plain ≠ archivierungstauglich. ConformanceMode::Plain ist kein PDF/A. Es trägt keinen OutputIntent und keinen pdfaid-Marker. Behandeln Sie es nicht als archivierungstauglich.
  • Implementiert ≠ voll konform. Diese Seite listet die Klauseln auf, die NextPDF implementiert. Sie sagt nicht aus, dass jede ISO 32000-2-Klausel für jedes Dokument erfüllt ist — das ist ein Prüferurteil pro Dokument.
  • Erweiterungen sind namespaced. Eine Entwickler-Erweiterung nutzt das §7.12-Extensions-Dictionary mit einem registrierten Präfix. Ein nicht präfigierter privater Schlüssel ist eine Baseline-Abweichung.

Die Baseline-Erzeugung liegt im Kernpfad der Engine. Budgetiert wird mit Wall ≤ 1500 ms und Peak ≤ 64 MB für ein typisches Dokument. Die Backport-Matrix (PHP 8.1–8.4) wird für den Baseline-Writer unterstützt.

PDF 2.0-Baseline-Ausgabe enthält keine Verschlüsselung und keine Signatur, sofern diese nicht ausdrücklich hinzugefügt werden. Verschlüsselung dient der Vertraulichkeit (ein eigenes Recipe). ISO-Berechtigungsbits sind reader-kooperativ, aber keine Zugriffskontrolle. Die Baseline gibt keine Sicherheitsgarantie.

AussageSpecKlauselreference_id
Eine konforme PDF 2.0-Datei muss einen konformen Trailer / eine konforme Dateistruktur führen.ISO 32000-2§7.5.5
Jedes Objekt ist über eine Querverweistabelle oder einen Querverweis-Stream lokalisierbar.ISO 32000-2§7.5.8
Die Datei hat einen Dokumentkatalog als Wurzelobjekt.ISO 32000-2§7.7.2
Konformität ist über konforme Writer und Reader definiert.ISO 32000-2§7.2
Versionserweiterungen nutzen das Extensions-Dictionary / Entwickler-Präfix.ISO 32000-2§7.12
Getaggte Ausgabe baut auf der Baseline für logische Struktur aus ISO 32000-2 auf.ISO 32000-2§14.7.2

Zitate sind Klausel-ID- + reference_id-Zeiger auf den Verifizierungskorpus. Es wird kein Standardtext wiedergegeben; die Klauseln sind in den Worten von NextPDF zusammengefasst.