Pro édition
Conformité
NextPDF Pro établit un rapport sur les événements de balise de langue PDF/UA-2, valide et embarque le XML de facture électronique Factur-X / ZUGFeRD, et embarque ou lit les magasins de manifestes C2PA. Ces fonctionnalités produisent des rapports et des résultats structurés. Elles ne certifient pas un document et ne garantissent pas une suffisance réglementaire.
Disponibilité et licence
Section intitulée « Disponibilité et licence »Cette capacité est fournie dans NextPDF Pro (nextpdf/pro) et s’active avec une enveloppe de licence de niveau Pro. Un déploiement dépourvu de ce droit ne charge pas les classes de la capacité. Compliance fait partie de l’édition Pro ; il n’existe aucun indicateur de licence distinct par fonctionnalité. Compare les éditions et obtiens une licence.
Installation
Section intitulée « Installation »composer require nextpdf/pro:^3Aperçu conceptuel
Section intitulée « Aperçu conceptuel »Le module Compliance possède trois surfaces indépendantes.
Rapport sur les balises de langue. LangComplianceReporter émet un enregistrement JSON structuré pour chaque événement de balise de langue PDF/UA-2. Chaque enregistrement porte la balise fautive, une raison lisible par machine, les composants analysés de la balise, une référence de clause ISO 14289-2 §8.4.4 et un horodatage. ConformancePolicy est une façade Premium qui applique par défaut une gestion stricte des langues UA-2 : elle échoue en mode fermé lorsqu’une balise BCP-47 malformée ou non enregistrée atteint l’entrée /Lang. Une option de désactivation permissive (ConformancePolicy::withStrictUa2(false)) rétablit l’ancien comportement permissif et journalise un avis. NextPDF marque cette désactivation comme obsolète ; utilise plutôt le mode strict par défaut. La désactivation existe depuis la v5.0 et disparaît à la prochaine version majeure. Pour migrer, audite ton corpus à la recherche de valeurs /Lang malformées, corrige-les, puis supprime l’appel de désactivation afin que le mode strict par défaut s’applique.
Traitement des factures électroniques. EInvoiceValidator vérifie un PDF hybride par rapport au modèle de données sémantique EN 16931 et à la spécification de conteneur Factur-X 1.08 / ZUGFeRD 2.4. Il détecte le profil, exécute le moteur de règles métier EN 16931, puis exécute une passe Schematron. Avant la validation, il extrait le XML de facture embarqué du PDF — y compris des PDF à flux d’objets, qui sont la sortie par défaut de producteurs courants comme Ghostscript, Gotenberg et Antenna House, et que l’extraction antérieure ne savait pas lire. L’extracteur accepte les sous-types MIME paramétrés selon la RFC 7303 (par exemple text/xml; charset=UTF-8) et les noms de fichier embarqués sous forme de chaînes littérales ISO 32000-2, échappements compris. FacturXEmbedder produit un document hybride PDF/A-3 avec le XML Factur-X attaché. EInvoiceValidationResult rend compte du profil, de la syntaxe, des violations de règles et des vérifications d’enveloppe.
Provenance. C2paManifestEmbedder embarque un magasin de manifestes C2PA fourni par l’appelant dans une chaîne d’octets PDF, ou l’en extrait. ManifestStore est l’objet-valeur immuable qui traverse la frontière. Cette jointure ne synthétise aucune assertion et ne résout aucune liaison de hachage.
Ce que « compliance » signifie ici
Section intitulée « Ce que « compliance » signifie ici »Ce module rend compte de ce qu’il vérifie. Il n’affirme pas qu’un document est juridiquement conforme, certifié ou juridiquement contraignant, et il ne garantit pas qu’une quelconque sortie satisfait une réglementation ou une juridiction.
- Le validateur de factures électroniques vérifie uniquement le modèle sémantique EN 16931 et la spécification de conteneur Factur-X / ZUGFeRD. Ce n’est pas un validateur d’administration fiscale. Les extensions nationales — par exemple le SDI italien, le Chorus Pro français, le XRechnung allemand — sont hors périmètre. Comme le note l’EN 16931-1 elle-même, l’émetteur de la facture est responsable du respect des règles de la législation applicable.
- Le rapporteur de balises de langue produit un rapport des événements de balise. Il ne rend pas un document conforme.
- L’embarquement C2PA écrit un manifeste fourni par l’appelant. Il ne produit ni ne signe les assertions qu’il contient.
La prise en charge d’une norme n’équivaut pas à sa conformité. Consulte ton équipe conformité pour juger de la suffisance réglementaire dans ton cas d’usage.
Pourquoi ça fonctionne ainsi
Section intitulée « Pourquoi ça fonctionne ainsi »La décision porteuse est une ligne nette entre vérifier et certifier. Chaque surface renvoie une preuve — un rapport, un résultat de validation, un manifeste embarqué — jamais une affirmation qu’un document est juridiquement conforme. C’est ce qui garde la jointure honnête d’une édition à l’autre. ConformancePolicy échoue en mode fermé sur une balise /Lang malformée, et C2paManifestEmbedder ne signe jamais les assertions qu’il porte. EInvoiceValidator::validate() renvoie un EInvoiceValidationResult ; un isValid() au vert est une entrée de ta décision, pas un verdict que tu peux remettre à un régulateur sans vérification. La preuve se compose avec tes propres contrôles au lieu de les remplacer, elle reste donc véridique même lorsque l’entrée est hostile.
Contexte de conception : Une conformité que tu peux remettre à un auditeur.
Surface d’API
Section intitulée « Surface d’API »| Classe | Responsabilité |
|---|---|
LangComplianceReporter | Émet des enregistrements structurés d’événements de balise de langue. |
ConformancePolicy | Façade Premium de politique de langue stricte UA-2. |
EInvoiceValidator | Vérifie EN 16931 / Factur-X / ZUGFeRD ; renvoie un résultat. |
EInvoiceValidationResult | Profil, syntaxe, violations de règles, vérifications d’enveloppe. |
FacturXEmbedder | Produit un document hybride PDF/A-3 + XML Factur-X. |
C2paManifestEmbedder | Embarque ou extrait un magasin de manifestes C2PA. |
ManifestStore | Objet-valeur immuable de magasin de manifestes C2PA. |
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »use NextPDF\Pro\Compliance\EInvoice\EInvoiceValidator;
$result = $validator->validate('/path/to/invoice.pdf');$ok = $result->isValid(); // true only if wrapper, attachment, profile, and no fatal BRExemple de code — Production
Section intitulée « Exemple de code — Production »$result = $validator->validate($pdfPath);
foreach ($result->businessRuleViolations as $violation) { $logger->warning('einvoice.br_violation', [ 'rule' => $violation->ruleId, 'severity' => $violation->severity->value, ]);}// A green result is one input to your decision, not a compliance verdict.Cas limites et pièges
Section intitulée « Cas limites et pièges »- Un PDF bien formé qui n’est pas un Factur-X renvoie un résultat « pas une facture électronique » plutôt que de lever une exception.
- L’extracteur de XML lit les PDF à flux d’objets (la sortie par défaut de Ghostscript, Gotenberg et Antenna House) et accepte les sous-types MIME paramétrés RFC 7303 et les noms de fichier sous forme de chaînes littérales ISO 32000-2. Il s’agit d’une extraction de compatibilité pour des sorties de producteurs conformes, non d’une validation faisant autorité des pièces jointes face à des entrées hostiles — l’activation complète de la table de références croisées (xref) pour des points d’accès publics adverses est une frontière différée documentée. Traite en conséquence l’extraction depuis des sources non fiables.
- Une liste vide de violations de règles métier ne signifie pas à elle seule que le document est valide ; les vérifications d’enveloppe et de pièces jointes s’appliquent aussi.
- NextPDF rend obsolète la désactivation permissive du mode strict UA-2 ; migre vers le mode strict par défaut (voir Aperçu conceptuel). Elle disparaît à la prochaine version majeure.
Performance
Section intitulée « Performance »Le coût de validation évolue avec la taille du XML embarqué et le nombre de règles. Le rapport sur les balises de langue est à coût constant par événement.
Notes de sécurité
Section intitulée « Notes de sécurité »Toute analyse XML désactive la résolution des entités externes (sûre vis-à-vis de XXE) et borne la décompression. Traite le XML de facture électronique et les octets C2PA provenant de sources non fiables comme hostiles.
Résidence des données et atténuations des données personnelles
Section intitulée « Résidence des données et atténuations des données personnelles »Le XML de facture électronique peut contenir des données personnelles et financières. Le traitement est local et en cours de processus ; le module n’effectue aucun appel réseau sortant pour la validation. Applique tes propres contrôles de rétention et de minimisation au XML extrait et aux rapports.
Télémétrie sûre et nettoyage des journaux
Section intitulée « Télémétrie sûre et nettoyage des journaux »Les enregistrements du rapporteur et les journaux de validation peuvent inclure des valeurs de balise et des identifiants de règle. Ils n’incluent pas les charges utiles complètes des factures. Nettoie ou caviarde les valeurs de balise avant de transmettre les journaux vers des collecteurs partagés si ces valeurs sont sensibles.
Conformité
Section intitulée « Conformité »| Comportement | Référence | Statut |
|---|---|---|
Déclaration de langue naturelle (/Lang) | ISO 14289-2:2024 §8.4.4 | Vérifié / rapporté |
| Modèle sémantique de facture de référence | EN 16931-1:2026 | Vérifié (l’émetteur reste responsable) |
| Magasin de manifestes C2PA / JUMBF | C2PA 2.1 §11.1 | Embarquement / extraction pris en charge |
Ce tableau consigne les spécifications par rapport auxquelles NextPDF Pro est conçu et ce qu’il vérifie. Ce n’est pas une déclaration de certification ou de suffisance réglementaire.
Comportement en mode FIPS
Section intitulée « Comportement en mode FIPS »Ce module n’effectue aucune signature cryptographique. La signature des assertions C2PA et la garde des clés sont hors de son périmètre ; voir le module Security pour le comportement de signature en mode FIPS.
Modèle de menace
Section intitulée « Modèle de menace »Le XML de facture électronique et les octets C2PA non fiables sont les entrées principales. Atténuations : analyse sûre vis-à-vis de XXE, décompression bornée, aucune synthèse d’assertion à travers la jointure C2PA, et aucune E/S réseau pendant la validation.
Contrat de comportement
Section intitulée « Contrat de comportement »LangComplianceReporterémet un enregistrement JSON structuré par événement de balise de langue PDF/UA-2, avec la balise fautive, une raison lisible par machine, les composants analysés de la balise, une référence ISO 14289-2 §8.4.4 et un horodatage.ConformancePolicyapplique par défaut une gestion stricte des langues UA-2 et échoue en mode fermé lorsqu’une balise BCP-47 malformée ou non enregistrée atteint/Lang. La désactivation permissive est obsolète et est supprimée à la prochaine version majeure.EInvoiceValidatordétecte le profil, exécute le moteur de règles métier EN 16931 et une passe Schematron, et renvoie unEInvoiceValidationResult. Ce n’est pas un validateur d’administration fiscale ; les extensions nationales sont hors périmètre et l’émetteur reste responsable selon l’EN 16931-1.FacturXEmbedderproduit un document hybride PDF/A-3 avec le XML Factur-X attaché.C2paManifestEmbedderembarque ou extrait unManifestStorefourni par l’appelant ; il ne synthétise ni ne signe d’assertions.- Ce module rend compte de ce qu’il vérifie. Il ne certifie pas un document et ne garantit pas une suffisance réglementaire.
Note de frontière Enterprise
Section intitulée « Note de frontière Enterprise »Compliance dans Pro couvre le rapport sur les balises de langue, la vérification EN 16931 / Factur-X / ZUGFeRD et l’embarquement/extraction de manifestes C2PA. Les profils d’archivage et de signature étendus, ainsi que la signature des assertions C2PA avec garde des clés, relèvent de l’édition Enterprise, sont documentés séparément et ne sont pas fournis par ce module.
Repli / alternative Core
Section intitulée « Repli / alternative Core »Il n’existe aucun équivalent Core pour le rapport sur les balises de langue, le traitement des factures électroniques ou l’embarquement de manifestes C2PA. Ce sont des ajouts de Pro.
Frontière de publication
Section intitulée « Frontière de publication »Cette page ne documente que le comportement observable de l’extérieur et la surface d’API publique prise en charge. Les chemins d’espaces de noms internes, les classes d’assistance, les tables de mécanismes, les noms de fichiers de runbook et les préfixes de tickets sont hors périmètre.
Voir aussi
Section intitulée « Voir aussi »- Security — signature et caviardage.
- Éditions Enterprise — profils d’archivage et de signature étendus.
- Spécifications — index des normes référencées.
- Compliance — Référence approfondie — surface complète des classes et méthodes.