Aller au contenu
getnextpdf.com

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.

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é.

Fenêtre de terminal
composer require nextpdf/pro:^3

La capacité Form requiert une licence NextPDF Pro valide. Voir Disponibilité et licence.

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. FormDataExtractor lit les paires nom/valeur de champ à partir des champs de formulaire analysés et produit un objet XfdfData ou une simple carte name → value. XfdfWriter fait 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. XfdfParser lit un fichier XFDF en données structurées ; XfdfWriter sérialise les valeurs de champ en XFDF, avec une référence optionnelle vers le PDF source.
  • Extraction de données XFA. XfaParser localise 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.

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).

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.

ClasseResponsabilité
FormDataExtractorExtrait les valeurs de champ AcroForm en XfdfData ou en tableau.
XfdfParserAnalyse un document XFDF en données structurées.
XfdfWriterSérialise les valeurs de champ en XFDF, référence PDF optionnelle.
XfaParserExtrait et analyse les paquets template et datasets XFA.
FormDataBinderLie 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.

use NextPDF\Pro\Form\FormDataExtractor;
use NextPDF\Pro\Form\XfdfWriter;
$values = FormDataExtractor::toArray($fields);
$xfdf = XfdfWriter::fromFields($fields, 'invoice.pdf');
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()]);
}
  • XfaParser rejette 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.

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.

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.

ComportementRéférenceStatut
Modèle de formulaire interactif / dictionnaire de champISO 32000-2 §12.7Aligné (paraphrasé)
Format d’échange de données XFDFISO 19444-1:2019Aligné

Ce tableau consigne les spécifications par rapport auxquelles NextPDF Pro est conçu. Ce n’est pas une déclaration de certification formelle.

  • FormDataExtractor lit les paires nom/valeur à partir des dictionnaires de champ terminaux analysés et renvoie un objet XfdfData ou un simple tableau name → value.
  • XfdfParser analyse un document XFDF en données structurées ; XfdfWriter sérialise les valeurs de champ en XFDF avec une référence optionnelle vers le PDF source.
  • XfaParser localise 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).

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.

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/.

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.