ISO 19005-4 (PDF/A-4): NextPDF feature-mapping
In één oogopslag
Sectie met titel “In één oogopslag”International Organization for Standardization (ISO) 19005-4:2020 is het archiveringsprofiel van Portable Document Format (PDF) 2.0 dat bekendstaat als PDF/A-4. Deze pagina brengt dat profiel in kaart voor NextPDF zonder de ondersteuning te overdrijven: wat Core uitvoert, wat de nextpdf/pro-extensie toevoegt en wat NextPDF uitdrukkelijk niet dekt. NextPDF voert PDF/A-4-relevante structuren uit; alleen een validator kan bevestigen dat een bestand daadwerkelijk voldoet.
Installatie
Sectie met titel “Installatie”composer require nextpdf/core:^3# PDF/A-4 file authoring (OutputIntent + ICC + XMP) requires:# composer require nextpdf/proConceptueel overzicht
Sectie met titel “Conceptueel overzicht”ISO 19005-4:2020 bouwt voort op ISO 32000-2:2020 (PDF 2.0), terwijl PDF/A-2 en PDF/A-3 voortbouwen op ISO 32000-1:2008 (PDF 1.7). NextPDF legt dit verschil in afstamming vast in ConformanceMode::requiresPdf17(). De methode retourneert false voor elke PDF/A-4-variant en true voor PDF/A-2 en PDF/A-3.
PDF/A-4 definieert drie conformiteitsvormen. Het basisprofiel gebruikt geen pdfa:conformance-letter. PDF/A-4e (bijlage B, engineering / 3D-inhoud) stelt pdfa:conformance = E in. PDF/A-4f (bijlage A, ingebedde bestanden) stelt pdfa:conformance = F in. ISO 19005-4:2020 §6.7.3 specificeert het PDF/A-identificatieschema in de namespace van de Association for Intelligent Information Management (AIIM). Het stelt dat een bestand dat niet aan PDF/A-4e en niet aan PDF/A-4f voldoet, geen pdfa:conformance-vermelding heeft. NextPDF neemt dit gedrag exact over in ConformanceMode::pdfaConformanceLetter(): PdfA4 retourneert de lege string, PdfA4e retourneert E, PdfA4f retourneert F.
De kritieke editiegrens ligt bij het opstellen van PDF/A-4-bestanden. Het OutputIntent-woordenboek, het ingebedde International Color Consortium (ICC)-profiel, het uitbreidingsschema van het Extensible Metadata Platform (XMP), de garanties voor lettertypesubsets en het versleutelingsverbod zijn geïmplementeerd in de Enterprise PdfAManager. De Enterprise PdfAManager wordt meegeleverd in de nextpdf/pro-extensie. Bij een Core-only-installatie genereert Document::enablePdfA() een InvalidConfigException omdat de security.pdfa-mogelijkheid niet is geregistreerd. Het uitvoerbare voorbeeld (examples/32-pdfa4-icc.php) demonstreert dit door het mogelijkhedenregister te controleren en terug te vallen met een duidelijke melding in plaats van met een stacktrace.
Daarom bestaat het PDF/A-4-oppervlak in Core alleen uit de discriminator. NextPDF registreert welke PDF/A-4-variant een document declareert. NextPDF voert de markeringen pdfaid:part = 4 / pdfa:conformance uit die het schema definieert. Het produceren van een volledig PDF/A-4-bestand — en het valideren dat het voldoet — zijn afzonderlijke stappen. De eerste stap vereist nextpdf/pro. De tweede stap vereist veraPDF.
API-oppervlak
Sectie met titel “API-oppervlak”| Oppervlak | Editie | Wat het biedt |
|---|---|---|
ConformanceMode::PdfA4 / PdfA4e / PdfA4f | core | De variantdiscriminator |
ConformanceMode::pdfaPart() → 4 | core | ISO 19005-deelnummer |
ConformanceMode::pdfaConformanceLetter() → '' / 'E' / 'F' | core | §6.7.3-conformiteitsletter |
ConformanceMode::requiresPdf17() → false | core | Afstammingscontrole voor PDF 2.0 |
Document::enablePdfA() | pro | OutputIntent- + ICC- + XMP-authoring; genereert InvalidConfigException in Core |
Codevoorbeeld — snelstart
Sectie met titel “Codevoorbeeld — snelstart”<?php
declare(strict_types=1);
use NextPDF\Conformance\ConformanceMode;
// Core: introspect the declared PDF/A-4f contract.$mode = ConformanceMode::PdfA4f;$mode->pdfaPart(); // 4$mode->pdfaConformanceLetter(); // 'F' (ISO 19005-4:2020 §6.7.3 / Annex A)$mode->requiresPdf17(); // false (PDF/A-4 is PDF 2.0 lineage)Codevoorbeeld — productie
Sectie met titel “Codevoorbeeld — productie”<?php
declare(strict_types=1);
use NextPDF\Core\Document;use NextPDF\Exception\InvalidConfigException;use NextPDF\Support\CapabilityRegistry;
// PDF/A-4 file authoring requires the Premium extension. Probe first so a// Core-only install gets a clear rationale, not a stack trace.$registry = CapabilityRegistry::getInstance();if (!$registry->get('security.pdfa')->isAvailable()) { throw new InvalidConfigException( configKey: 'security.pdfa', givenValue: 'Core-only install', expectedType: 'nextpdf/pro extension (Enterprise PdfAManager)', );}
$doc = Document::createStandalone();$doc->enablePdfA(); // Emits OutputIntent + ICC + pdfaid XMP (Premium).// … write content …$doc->save(__DIR__ . '/out/archive-a4.pdf');
// The file now CARRIES PDF/A-4 structures. Conformance is still unproven// until veraPDF asserts it://// verapdf --flavour 4 out/archive-a4.pdfRandgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”- Core kan geen PDF/A-4-bestand opstellen.
enablePdfA()genereert in Core een fout. Core stelt alleen de discriminator en de XMP-markeringen beschikbaar. - Basis-PDF/A-4 voert geen
pdfa:conformanceuit. Volgens ISO 19005-4:2020 §6.7.3 stellen alleen PDF/A-4e en PDF/A-4f de letter in.ConformanceMode::PdfA4retourneert opzettelijk de lege string. - PDF 2.0-afstamming, niet PDF 1.7. Een veelgemaakte fout is het hergebruiken van een PDF/A-3-pijplijn die
%PDF-1.7verwacht. PDF/A-4 is PDF 2.0;requiresPdf17()retourneertfalsevoor alle PDF/A-4-gevallen. - ICC-validatie is Premium. De OutputIntent-ICC-validatie van ISO 19005-4:2020 §6.2.2 (
acsp-magic, tagtabel, D50-witpunt) wordt afgehandeld door de EnterprisePdfAManager, niet door Core. - De bibliotheek certificeert het bestand niet. Het instellen van
PdfA4fen het uitvoeren van de markeringen maakt de uitvoer geen geldig PDF/A-4f-bestand. Valideer met veraPDF.
Prestaties
Sectie met titel “Prestaties”Het PDF/A-4-oppervlak van Core is zuivere introspectie van waardetypen: enum match-dispatch, O(1) en zonder allocatie. Het Premium-authoringpad voegt het OutputIntent- en ICC-pakket toe tijdens het schrijven. De kosten bestaan uit de grootte van het ingebedde profiel, die binnen het writerbudget wordt afgehandeld. veraPDF-validatie verloopt buiten de band, niet tijdens het genereren.
Beveiligingsopmerkingen
Sectie met titel “Beveiligingsopmerkingen”PDF/A-4 verbiedt versleuteling. De Enterprise PdfAManager handhaaft de invariant dat versleuteling verboden is en ordent die ten opzichte van enablePdfA(), zodat een aanroeper niet per ongeluk Advanced Encryption Standard in Galois/Counter Mode (AES-GCM) met de archiveringsmodus kan combineren. De Core-guard in HasSecurity::enablePdfA() weigert de niet-ondersteunde combinatie voordat er bytes worden geschreven. Raadpleeg het dreigingsmodel van het project voor details over de archiveringspijplijn.
Conformiteit
Sectie met titel “Conformiteit”Deze pagina is een functie-mapping, geen conformiteitsclaim.
| ISO 19005-4:2020-gebied | Clausule | NextPDF-dekking | Status |
|---|---|---|---|
| Schema voor variantidentificatie | §6.7.3 | ConformanceMode voert pdfaid:part = 4 en de pdfa:conformance-letter uit | Geclaimd (Core; unit-getest in tests/Unit/Conformance/) |
| Afstammingscontrole voor PDF 2.0 | §6.7.3 / basis | requiresPdf17() retourneert false voor alle PDF/A-4-gevallen | Geverifieerd (unit-getest) |
| OutputIntent + ingebedde ICC | §6.2.2 | Enterprise PdfAManager (nextpdf/pro) | Alleen Premium (niet Core) |
| XMP-uitbreidingsschema, lettertypesubsetting, versleutelingsverbod | §6 / bijlage A/B | Enterprise PdfAManager (nextpdf/pro) | Alleen Premium (niet Core) |
| Bepaling van conformiteit | Clausule 5 | Niet uitgevoerd door NextPDF — veraPDF | Expliciete niet-dekking |
Ondersteuning is geen conformiteit — en deze pagina houdt de twee bewust gescheiden. (a) NextPDF Core voert de structuren uit die ISO 19005-4:2020 §6.7.3 definieert voor variantidentificatie; dit is implementatie, aangetoond door tests/Unit/Conformance/ConformanceModePdfAVariantTest.php (geslaagd). (b) Dat een bestand PDF/A-4-conform is, is een afzonderlijke bewering die alleen een validator kan doen, volgens ISO 19005-4:2020 clausule 5. Clausule 5 stelt dat een controletool de werkelijke bepaling van conformiteit aan de normatieve vereisten uitvoert. NextPDF doet bewering (a). NextPDF doet bewering (b) niet. Valideer met veraPDF (verapdf --flavour 4 …, of php oracle/run.php voor de oracle-harness — die alleen wordt uitgevoerd wanneer de veraPDF-binary aanwezig is; het is een opt-in-controle).
De zinsneden „PDF/A-4 compliant”, „fully conformant” en „PDF/A-4 certified” ontbreken bewust op deze pagina. NextPDF voert PDF/A-4-relevante structuren uit; het garandeert niet dat een bestand conform is.
Citaten zijn geparafraseerd uit het NextPDF-compliancecorpus. Volledige 64-teken-reference_id-digests worden vastgelegd in de frontmatter van de pagina en in docs/public/modules/core/_normative-evidence-conf.md.
Zie ook
Sectie met titel “Zie ook”- Conformance-module —
ConformanceMode-routing en de veraPDF-oracle - Compliance-module — PDF/R-1-validator en Arlington-grammatica
- PDF/UA-2-specificatie-mapping — de tegenhanger voor het toegankelijkheidsprofiel