PDF 2.0-baseline: de ISO 32000-2-clausules die NextPDF implementeert
In het kort
Sectie met titel “In het kort”Grensverklaring. NextPDF implementeert de geciteerde clausules; volledige ISO 32000-2-conformiteit wordt niet als algemene claim beweerd.
ISO 32000-2:2020 is de PDF 2.0-basisstandaard. NextPDF Core levert standaard onbeperkte PDF 2.0-uitvoer (ConformanceMode::Plain): een %PDF-2.0-header, een documentcatalogus, een kruisverwijzingsstructuur en een conforme trailer. Deze pagina documenteert de baseline-clausules die NextPDF implementeert en de expliciete grens daarvan. De library implementeert de geciteerde clausules, maar claimt niet algemeen „volledig ISO 32000-2-conform” te zijn. Een conform bestand is een bestand dat een conforme reader volgens de standaard kan verwerken. Dat is een oordeel van een verifier, geen library-vlag.
Installatie
Sectie met titel “Installatie”composer require nextpdf/core:^3PDF 2.0-baseline-uitvoer is de standaard van Core; je hebt geen profielaanroep nodig. ConformanceMode::Plain is de standaard-discriminator. De profielen PDF/A-4, PDF/UA-2, PDF/X en ZUGFeRD zijn beperkte subsets die boven op deze baseline liggen.
Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”Elk NextPDF-document begint als een PDF 2.0-bestand voordat er een profiel wordt toegepast. De writer voldoet aan de structurele verplichtingen die ISO 32000-2 aan een conform bestand stelt:
- Documentcatalogus — §7.7.2: het root-object waarnaar de
/Rootvan de trailer verwijst, aanwezig in elke uitvoer. - Kruisverwijzingsstructuur — §7.5.8: een kruisverwijzingstabel of -stream die elk object kan lokaliseren.
- Trailer — §7.5.5: het trailer-dictionary dat een conform bestand moet bevatten, inclusief de bestands-
/ID-identifier. De/IDis uniek per bestand en wordt voor vergelijkingen weggenormaliseerd. Daarom gebruikt de meeste uitvoer met meerdere objectenreproducibility_profile: structural, niet bitsgewijs. - Logische structuur — §14.7.2: wanneer de getagde modus is ingeschakeld, de
StructTreeRoot-baseline waarop het PDF/UA-2-profiel steunt. - Versie-uitbreiding — §7.12: wanneer een developer-extensie wordt gedeclareerd, het mechanisme met het Extensions-dictionary / developer-prefix.
NextPDF implementeert deze clausules, maar voert geen volledige ISO 32000-2-conformiteitsbeoordeling uit. Gebruik voor dat oordeel een externe validator, zoals de Arlington grammar checker of veraPDF. NextPDF\Compliance levert de byte-stream-kruiscontroles (ArlingtonValidator) die structurele afwijkingen aan het licht brengen. Ze ondersteunen verificatie, maar zijn geen certificaat.
API-oppervlak
Sectie met titel “API-oppervlak”| Symbool | Effect |
|---|---|
ConformanceMode::Plain | Standaard — onbeperkte PDF 2.0-uitvoer. |
ConformanceMode::requiresPdf17(): bool | False voor PDF 2.0-modi; de writer levert een %PDF-2.0-header. |
NextPDF\Compliance\Validator\ArlingtonValidator | Grammaticakruiscontrole tegen het Arlington PDF-model (ondersteunt verificatie). |
Codevoorbeeld — Snelstart
Sectie met titel “Codevoorbeeld — Snelstart”<?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";Codevoorbeeld — Productie
Sectie met titel “Codevoorbeeld — Productie”Voer in productie een externe structurele validator (Arlington / veraPDF) uit in continuous integration (CI) op representatieve uitvoer en gebruik het rapport ervan als gate. De library levert de structuur; de checker bepaalt of die conform is. De library doet geen algemene conformiteitsclaim.
Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”/IDis bestandsuniek. Baseline-uitvoer met een trailer-/ID,/CreationDateof lettertype-subset-prefixen is niet byte-stabiel. Vergelijk met het structurele profiel (qpdf-normalize), niet met een ruwe sha256.- Plain ≠ archivering.
ConformanceMode::Plainis geen PDF/A. Deze modus bevat geen OutputIntent ofpdfaid-markering. Behandel hem niet als archiveringsformaat. - Implementeert ≠ volledig conform. Deze pagina somt de clausules op die NextPDF implementeert. Ze stelt niet dat elk document elke ISO 32000-2-clausule naleeft. Dat oordeel ligt per document bij een verifier.
- Extensies hebben een namespace. Een developer-extensie gebruikt het §7.12 Extensions-dictionary met een geregistreerde prefix. Een private sleutel zonder prefix is een afwijking van de baseline.
Prestaties
Sectie met titel “Prestaties”Baseline-uitvoer is het kernpad van de engine. Het budget is wall ≤ 1500 ms en peak ≤ 64 MB voor een typisch document. De baseline-writer ondersteunt de backport-matrix (PHP 8.1–8.4).
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”PDF 2.0-baseline-uitvoer bevat geen versleuteling of handtekening, tenzij je die expliciet toevoegt. Versleuteling biedt vertrouwelijkheid en wordt in een aparte recipe behandeld. ISO-permissiebits berusten op medewerking van de reader, niet op toegangscontrole. De baseline geeft geen beveiligingsgarantie.
Conformiteit
Sectie met titel “Conformiteit”| Claim | Spec | Clausule | reference_id |
|---|---|---|---|
| Een conform PDF 2.0-bestand moet een conforme trailer / bestandsstructuur bevatten. | ISO 32000-2 | §7.5.5 | |
| Elk object is lokaliseerbaar via een kruisverwijzingstabel of -stream. | ISO 32000-2 | §7.5.8 | |
| Het bestand heeft een documentcatalogus als root-object. | ISO 32000-2 | §7.7.2 | |
| Conformiteit wordt geformuleerd in termen van conforme writers en readers. | ISO 32000-2 | §7.2 | |
| Versie-uitbreidingen gebruiken het Extensions-dictionary / developer-prefix. | ISO 32000-2 | §7.12 | |
| Getagde uitvoer bouwt voort op de ISO 32000-2-baseline voor logische structuur. | ISO 32000-2 | §14.7.2 |
Citaten zijn verwijzingen met clausule-id + reference_id naar het verificatiecorpus. Er wordt geen standaardtekst gereproduceerd; NextPDF vat clausules in eigen woorden samen.