Pro édition
Formulaire
NextPDF Pro lit et écrit les données de formulaire interactif : les valeurs de champ AcroForm, les fichiers de données XFDF et les données portées par les modèles XFA (XML Forms Architecture). Il complète le lecteur de formulaires open source de Core avec la liaison de données, l’extraction et la sérialisation.
Disponibilité et licence
Section intitulée « Disponibilité et licence »Cette capacité est livrée dans NextPDF Pro (nextpdf/pro) et s’active avec une enveloppe de licence de niveau Pro. Un déploiement dépourvu de cette autorisation ne charge pas les classes de la capacité. Compare les éditions et obtiens une licence.
Form fait partie de l’édition Pro. Il n’existe aucun indicateur de licence distinct par fonctionnalité.
Installation
Section intitulée « Installation »composer require nextpdf/pro:^3La capacité Form requiert une licence NextPDF Pro valide. Voir Disponibilité et licence.
Aperçu conceptuel
Section intitulée « Aperçu conceptuel »Un formulaire interactif PDF — parfois appelé AcroForm — stocke chaque champ dans un dictionnaire de champ, comme défini dans ISO 32000-2 §12.7. NextPDF Pro s’appuie sur le lecteur de formulaires de Core pour ajouter trois capacités :
- Aller-retour AcroForm.
FormDataExtractorlit les paires nom/valeur de champ à partir des champs de formulaire analysés et produit un objetXfdfDataou une simple cartename → value.XfdfWriterfait l’inverse, en générant un document XFDF. - Lecture et écriture XFDF. XFDF est le format d’échange de données XML pour les valeurs de formulaire décrit par ISO 19444-1:2019.
XfdfParserlit un fichier XFDF en données structurées ;XfdfWritersérialise les valeurs de champ en XFDF, avec une référence optionnelle vers le PDF source. - Extraction de données XFA.
XfaParserlocalise les paquets XFA dans un document, concatène les fragments XML et analyse les paquets template et datasets en données de champ structurées.
Périmètre de la prise en charge XFA
Section intitulée « Périmètre de la prise en charge XFA »La prise en charge XFA dans NextPDF Pro est orientée données, pas un moteur complet de rendu ou de script XFA. L’analyseur extrait et structure les paquets template et datasets pour que tu puisses lire les définitions et les valeurs de champ. Il n’exécute pas les scripts de calcul de formulaire XFA, ne rend pas les mises en page XFA dynamiques et ne fait pas l’aller-retour de tous les types de paquets XFA. Teste l’analyseur sur tes documents spécifiques avant de t’y fier pour un jeu de formulaires XFA donné. Toute analyse XML désactive le chargement des entités externes (sûre vis-à-vis de XXE).
Pourquoi ça fonctionne ainsi
Section intitulée « Pourquoi ça fonctionne ainsi »La prise en charge XFA est délibérément limitée aux données, pas au rendu. ISO 32000-2 marque l’entrée XFA du dictionnaire de formulaire comme dépréciée dans PDF 2.0 (§12.7). Un moteur complet de mise en page et de script XFA courrait après une surface héritée dont la plupart des charges de travail n’ont plus besoin. NextPDF Pro extrait plutôt les paquets template et datasets, là où résident les données de champ durables, et décline le reste. La même posture guide l’analyse XXE désactivée et le plafond de balayage, car les entrées de formulaire arrivent souvent de parties non fiables. Cela garde la surface de formulaire Pro comme une extension mince et prévisible du modèle AcroForm de Core.
Contexte de conception : Du formulaire à remplir à l’enregistrement figé : remplissage et aplatissement AcroForm.
Surface d’API
Section intitulée « Surface d’API »| Classe | Responsabilité |
|---|---|
FormDataExtractor | Extrait les valeurs de champ AcroForm en XfdfData ou en tableau. |
XfdfParser | Analyse un document XFDF en données structurées. |
XfdfWriter | Sérialise les valeurs de champ en XFDF, référence PDF optionnelle. |
XfaParser | Extrait et analyse les paquets template et datasets XFA. |
FormDataBinder | Lie une carte de données aux champs de formulaire. |
La référence complète au niveau des méthodes se trouve dans la référence approfondie de Form.
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »use NextPDF\Pro\Form\FormDataExtractor;use NextPDF\Pro\Form\XfdfWriter;
$values = FormDataExtractor::toArray($fields);$xfdf = XfdfWriter::fromFields($fields, 'invoice.pdf');Exemple de code — Production
Section intitulée « Exemple de code — Production »use NextPDF\Pro\Form\XfaParser;use NextPDF\Pro\Form\Exception\XfaParseException;
try { $formData = (new XfaParser())->parse($pdfBytes); $logger->info('xfa.parsed', ['fields' => count($formData->fields)]);} catch (XfaParseException $e) { $logger->warning('xfa.parse_failed', ['reason' => $e->getMessage()]);}Cas limites et pièges
Section intitulée « Cas limites et pièges »XfaParserrejette une entrée PDF plus grande que son plafond de balayage plutôt que de lire des données non bornées.- Un document peut porter à la fois des formulaires interactifs et non interactifs ; l’extraction vise les dictionnaires de champ terminaux.
- XFDF fait l’aller-retour des structures de champ plates ; les hiérarchies de champs profondément imbriquées peuvent nécessiter un traitement explicite.
Performance
Section intitulée « Performance »L’extraction et la sérialisation sont linéaires par rapport au nombre de champs de formulaire. Le coût d’analyse XFA évolue avec la taille des paquets XML embarqués.
Notes de sécurité
Section intitulée « Notes de sécurité »Toute analyse XML désactive la résolution des entités externes pour prévenir XXE. Traite les entrées XFDF et XFA provenant de sources non fiables comme hostiles et valide le jeu de champs analysé avant de le lier de nouveau dans un document.
Conformité
Section intitulée « Conformité »| Comportement | Référence | Statut |
|---|---|---|
| Modèle de formulaire interactif / dictionnaire de champ | ISO 32000-2 §12.7 | Aligné (paraphrasé) |
| Format d’échange de données XFDF | ISO 19444-1:2019 | Aligné |
Ce tableau consigne les spécifications par rapport auxquelles NextPDF Pro est conçu. Ce n’est pas une déclaration de certification formelle.
Contrat de comportement
Section intitulée « Contrat de comportement »FormDataExtractorlit les paires nom/valeur à partir des dictionnaires de champ terminaux analysés et renvoie un objetXfdfDataou un simple tableauname → value.XfdfParseranalyse un document XFDF en données structurées ;XfdfWritersérialise les valeurs de champ en XFDF avec une référence optionnelle vers le PDF source.XfaParserlocalise les paquets XFA, concatène les fragments XML et analyse les paquets template et datasets en données de champ structurées. Il rejette une entrée PDF plus grande que son plafond de balayage plutôt que de lire des données non bornées.- La prise en charge XFA est orientée données : l’analyseur extrait et structure les paquets template et datasets. Il n’exécute pas les scripts de calcul de formulaire XFA, ne rend pas les mises en page XFA dynamiques et ne fait pas l’aller-retour de tous les types de paquets XFA.
- Toute analyse XML désactive la résolution des entités externes (sûre vis-à-vis de XXE).
Note de frontière Enterprise
Section intitulée « Note de frontière Enterprise »Enterprise ne change pas le comportement de Form. Enterprise ajoute des fonctionnalités de conformité et d’archivage de niveau supérieur, documentées séparément ; elles ne sont pas requises pour l’aller-retour AcroForm, la lecture/écriture XFDF ou l’extraction de données XFA.
Repli / alternative Core
Section intitulée « Repli / alternative Core »Le lecteur de formulaires open source de NextPDF Core lit les champs de formulaire. La lecture/écriture XFDF, l’extraction de données XFA et la liaison de champs sont des ajouts de Pro. Voir /modules/form/.
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’espace de noms internes, les classes d’assistance, les tableaux 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 »- Interop — DTO de données de formulaire versionnés pour les systèmes externes.
- Module Form de Core — lecteur de formulaires open source.
- Form — Référence approfondie — référence au niveau des méthodes pour les classes de formulaire Pro.