Baseline PDF 2.0: clausole ISO 32000-2 implementate da NextPDF
In sintesi
Sezione intitolata “In sintesi”Dichiarazione del limite. NextPDF implementa le clausole citate; la piena conformità a ISO 32000-2 non viene dichiarata come affermazione generica.
ISO 32000-2:2020 è lo standard di base per PDF 2.0. L’output predefinito di NextPDF Core (ConformanceMode::Plain) è un PDF 2.0 non vincolato: un’intestazione %PDF-2.0, un catalogo del documento, una struttura di riferimenti incrociati e un trailer conforme. Questa pagina documenta le clausole baseline implementate da NextPDF e il limite esplicito. La libreria implementa le clausole citate, ma non avanza alcuna affermazione generica di «piena conformità a ISO 32000-2». Un file conforme è un file che un reader conforme può elaborare secondo lo standard. Questa determinazione spetta a un verificatore, non a un flag impostato dalla libreria.
Installazione
Sezione intitolata “Installazione”composer require nextpdf/core:^3L’output baseline PDF 2.0 è l’impostazione predefinita di Core: non è necessaria alcuna chiamata di profilo. Il discriminatore predefinito è ConformanceMode::Plain; i profili PDF/A-4, PDF/UA-2, PDF/X e ZUGFeRD sono sottoinsiemi vincolati sovrapposti a questa baseline.
Panoramica concettuale
Sezione intitolata “Panoramica concettuale”Ogni documento NextPDF è un file PDF 2.0 prima dell’applicazione di qualsiasi profilo. Il writer soddisfa gli obblighi strutturali imposti da ISO 32000-2 a un file conforme:
- Catalogo del documento — §7.7.2: l’oggetto radice a cui fa riferimento la voce
/Rootdel trailer, presente in ogni output. - Struttura dei riferimenti incrociati — §7.5.8: una tabella o un flusso di riferimenti incrociati che individua ogni oggetto.
- Trailer — §7.5.5: il dizionario del trailer che un file conforme deve contenere, con l’identificatore
/IDdel file. L’identificatore/IDè univoco per ogni file e viene normalizzato in fase di confronto. Per questo motivo la maggior parte degli output multi-oggetto èreproducibility_profile: structural, non bit per bit. - Struttura logica — §14.7.2: quando è abilitata la modalità tagged, la baseline
StructTreeRootsu cui si basa il profilo PDF/UA-2. - Estensione di versione — §7.12: quando viene dichiarata un’estensione dello sviluppatore, il meccanismo è quello del dizionario Extensions / prefisso dello sviluppatore.
NextPDF implementa queste clausole, ma non esegue una valutazione completa della conformità a ISO 32000-2. Questo compito spetta a un validatore esterno (ad esempio il grammar checker Arlington o veraPDF). NextPDF\Compliance include i controlli incrociati sul flusso di byte (ArlingtonValidator) che evidenziano le discrepanze strutturali. Coadiuvano la verifica, ma non costituiscono un certificato.
Superficie API
Sezione intitolata “Superficie API”| Simbolo | Effetto |
|---|---|
ConformanceMode::Plain | Predefinito: output PDF 2.0 non vincolato. |
ConformanceMode::requiresPdf17(): bool | False per le modalità PDF 2.0; il writer emette un’intestazione %PDF-2.0. |
NextPDF\Compliance\Validator\ArlingtonValidator | Controllo incrociato della grammatica rispetto al modello PDF Arlington (coadiuva la verifica). |
Esempio di codice — Avvio rapido
Sezione intitolata “Esempio di codice — Avvio rapido”<?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";Esempio di codice — Produzione
Sezione intitolata “Esempio di codice — Produzione”Per la baseline, l’approccio di produzione consiste nell’eseguire un validatore strutturale esterno (Arlington / veraPDF) in CI su un output rappresentativo e nel vincolare la pipeline al relativo report. La libreria emette la struttura; spetta al checker stabilire se è conforme. La libreria non avanza alcuna affermazione generica di conformità.
Casi limite e insidie
Sezione intitolata “Casi limite e insidie”/IDè univoco per ogni file. L’output baseline che contiene un/IDnel trailer, un/CreationDateo prefissi di sottoinsieme di font non è stabile a livello di byte. Confrontare con il profilo strutturale (qpdf-normalize), non con uno sha256 grezzo.- Plain ≠ archiviazione.
ConformanceMode::Plainnon è PDF/A. Non contiene alcun OutputIntent né marcatorepdfaid. Non va considerato adatto all’archiviazione. - Implementa ≠ pienamente conforme. Questa pagina elenca le clausole implementate da NextPDF. Non costituisce un’affermazione secondo cui ogni clausola ISO 32000-2 sia soddisfatta per ogni documento: questo è un verdetto del verificatore documento per documento.
- Le estensioni hanno un namespace. Un’estensione dello sviluppatore utilizza il dizionario Extensions del §7.12 con un prefisso registrato. Una chiave privata senza prefisso è una deviazione dalla baseline.
Prestazioni
Sezione intitolata “Prestazioni”L’emissione baseline è il percorso principale del motore: per un documento tipico, il budget di tempo reale è ≤ 1500 ms e il picco è ≤ 64 MB. La matrice di backport (PHP 8.1–8.4) è supportata per il writer baseline.
Note di sicurezza
Sezione intitolata “Note di sicurezza”L’output baseline PDF 2.0 non include cifratura né firma, a meno che non vengano aggiunte esplicitamente. La cifratura riguarda la riservatezza (trattata in una ricetta separata). I bit di autorizzazione ISO si basano sulla cooperazione del reader e non costituiscono un controllo degli accessi. La baseline non fornisce alcuna garanzia di sicurezza.
Conformità
Sezione intitolata “Conformità”| Affermazione | Specifica | Clausola | reference_id |
|---|---|---|---|
| Un file PDF 2.0 conforme deve contenere un trailer / una struttura di file conforme. | ISO 32000-2 | §7.5.5 | |
| Ogni oggetto è individuabile tramite una tabella o un flusso di riferimenti incrociati. | ISO 32000-2 | §7.5.8 | |
| Il file ha un catalogo del documento come oggetto radice. | ISO 32000-2 | §7.7.2 | |
| La conformità è definita in termini di writer e reader conformi. | ISO 32000-2 | §7.2 | |
| Le estensioni di versione utilizzano il dizionario Extensions / prefisso dello sviluppatore. | ISO 32000-2 | §7.12 | |
| L’output tagged si basa sulla baseline della struttura logica ISO 32000-2. | ISO 32000-2 | §14.7.2 |
Le citazioni sono puntatori clause-id + reference_id nel corpus di verifica. Non viene riprodotto alcun testo degli standard; le clausole sono riassunte con parole proprie di NextPDF.