Socle PDF 2.0 : clauses ISO 32000-2 implémentées par NextPDF
Énoncé de la limite. NextPDF implémente les clauses citées ; la conformité intégrale à ISO 32000-2 n’est pas revendiquée comme affirmation générale.
ISO 32000-2:2020 est la norme de base de PDF 2.0. La sortie par défaut de NextPDF Core (ConformanceMode::Plain) est un PDF 2.0 sans contrainte : elle contient un en-tête %PDF-2.0, un catalogue de document, une structure de références croisées et un trailer conforme. Cette page documente les clauses du socle que NextPDF implémente, ainsi que la limite explicite. La bibliothèque implémente les clauses citées, sans formuler d’affirmation générale de « pleine conformité à ISO 32000-2 ». Un fichier conforme est un fichier qu’un lecteur conforme peut traiter selon la norme. Ce verdict relève d’un vérificateur, pas d’un drapeau posé par la bibliothèque.
Installation
Section intitulée « Installation »composer require nextpdf/core:^3La sortie du socle PDF 2.0 est le comportement par défaut de Core — aucun appel de profil n’est nécessaire. ConformanceMode::Plain est le discriminateur par défaut ; les profils PDF/A-4, PDF/UA-2, PDF/X et ZUGFeRD sont des sous-ensembles contraints superposés à ce socle.
Vue d’ensemble conceptuelle
Section intitulée « Vue d’ensemble conceptuelle »Chaque document NextPDF est un fichier PDF 2.0 avant l’application de tout profil. Le writer remplit les obligations structurelles qu’ISO 32000-2 impose à un fichier conforme :
- Catalogue de document — §7.7.2 : l’objet racine référencé par le
/Rootdu trailer, présent dans chaque sortie. - Structure de références croisées — §7.5.8 : une table ou un flux de références croisées permettant de localiser chaque objet.
- Trailer — §7.5.5 : le dictionnaire de trailer qu’un fichier conforme doit contenir, avec l’identifiant
/IDdu fichier. Le/IDest propre au fichier et neutralisé lors des comparaisons. C’est pourquoi la plupart des sorties multi-objets sontreproducibility_profile: structural, et non bit à bit. - Structure logique — §14.7.2 : lorsque le mode balisé est activé, le socle
StructTreeRootsur lequel s’appuie le profil PDF/UA-2. - Extension de version — §7.12 : lorsqu’une extension de développeur est déclarée, elle passe par le mécanisme du dictionnaire Extensions et du préfixe de développeur.
NextPDF implémente ces clauses. Il n’effectue pas d’évaluation complète de conformité à ISO 32000-2. Ce rôle revient à un validateur externe (par exemple le vérificateur de grammaire Arlington ou veraPDF). NextPDF\Compliance fournit les contrôles croisés sur le flux d’octets (ArlingtonValidator) qui signalent les divergences structurelles. Ils facilitent la vérification. Ce ne sont pas des certificats.
Surface d’API
Section intitulée « Surface d’API »| Symbole | Effet |
|---|---|
ConformanceMode::Plain | Par défaut — sortie PDF 2.0 sans contrainte. |
ConformanceMode::requiresPdf17(): bool | False pour les modes PDF 2.0 ; le writer émet un en-tête %PDF-2.0. |
NextPDF\Compliance\Validator\ArlingtonValidator | Contrôle croisé de grammaire avec le modèle PDF Arlington (aide à la vérification). |
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »<?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";Exemple de code — Production
Section intitulée « Exemple de code — Production »La posture de production pour le socle consiste à exécuter un validateur structurel externe (Arlington / veraPDF) en CI sur une sortie représentative et à faire dépendre le passage en CI de son rapport. La bibliothèque émet la structure ; le vérificateur tranche sur sa conformité. La bibliothèque ne formule aucune affirmation générale de conformité.
Cas limites & pièges
Section intitulée « Cas limites & pièges »/IDest unique au fichier. Une sortie du socle qui contient un/IDde trailer, une/CreationDateou des préfixes de sous-ensemble de police n’est pas stable octet par octet. Compare-la avec le profil structurel (qpdf-normalize), pas avec un sha256 brut.- Plain ≠ archivage.
ConformanceMode::Plainn’est pas du PDF/A. Il ne contient ni OutputIntent ni marqueurpdfaid. Ne le traite pas comme un format d’archivage. - Implémente ≠ pleinement conforme. Cette page liste les clauses que NextPDF implémente. Elle ne déclare pas que chaque clause ISO 32000-2 est satisfaite pour chaque document — c’est un verdict de vérificateur, document par document.
- Les extensions sont placées dans un espace de noms. Une extension de développeur utilise le dictionnaire Extensions du §7.12 avec un préfixe enregistré. Une clé privée sans préfixe constitue un écart par rapport au socle.
Performance
Section intitulée « Performance »L’émission du socle est le chemin central du moteur. Le budget est fixé à un temps mur ≤ 1500 ms et à un pic ≤ 64 Mo pour un document type. La matrice de backport (PHP 8.1–8.4) est prise en charge pour le writer du socle.
Notes de sécurité
Section intitulée « Notes de sécurité »La sortie du socle PDF 2.0 ne porte aucun chiffrement ni signature, sauf ajout explicite. Le chiffrement relève de la confidentialité (un recipe distinct). Les bits de permission ISO reposent sur la coopération du lecteur ; ce n’est pas du contrôle d’accès. Le socle n’offre aucune garantie de sécurité.
Conformité
Section intitulée « Conformité »| Affirmation | Spéc | Clause | reference_id |
|---|---|---|---|
| Un fichier PDF 2.0 conforme doit porter un trailer / une structure de fichier conformes. | ISO 32000-2 | §7.5.5 | |
| Chaque objet est localisable via une table ou un flux de références croisées. | ISO 32000-2 | §7.5.8 | |
| Le fichier a un catalogue de document comme objet racine. | ISO 32000-2 | §7.7.2 | |
| La conformité est définie en termes de writers et de lecteurs conformes. | ISO 32000-2 | §7.2 | |
| Les extensions de version utilisent le dictionnaire Extensions et le préfixe de développeur. | ISO 32000-2 | §7.12 | |
| La sortie balisée s’appuie sur le socle de structure logique ISO 32000-2. | ISO 32000-2 | §14.7.2 |
Les citations sont des pointeurs clause-id + reference_id vers le corpus de vérification. Aucun texte de la norme n’est reproduit ; les clauses sont résumées avec les mots de NextPDF.