Aller au contenu

Remplir un formulaire PDF avec NextPDF Connect (Pro)

Remplis les champs de formulaire PDF interactifs avec du XFDF (XML Forms Data Format) dans NextPDF Connect. L’outil de signature et de formulaires s’appelle fill_form. Le fournisseur d’outils Pro enregistre new FillFormTool() sous le nom de protocole fill_form. fill_form est un outil de l’édition Pro. Au démarrage, le serveur sonde le paquet Pro avec class_exists() et n’enregistre l’outil que lorsque ce paquet est présent. Avec Core uniquement, fill_form est absent du registre.

Fenêtre de terminal
composer require nextpdf/server
composer require nextpdf/pro

Lie un transport. Vérifie que l’outil existe avec diagnostic.capabilities (voir environment-diagnostics). Ne pars pas du principe que le jeu d’outils est figé.

XFDF associe les noms de champs à des valeurs au moyen d’éléments <field>. Chaque nom doit correspondre à un champ AcroForm déjà défini dans le document cible. Le dictionnaire de champs du formulaire interactif contient chaque champ (ISO 32000-2 §12.7), et la valeur fournie devient la valeur du champ (ISO 32000-2 §12.7). Un nom qui ne correspond à aucun champ est ignoré au lieu d’être traité comme une erreur. L’outil indique combien de champs il a remplis et combien il en a ignorés.

OutilNiveauRôleNiveau de risque
create_pdfCoreOuvrir une sessionSûr
fill_formProAppliquer les valeurs XFDF aux champs AcroFormPrudence
output_pdfCoreEffectuer le rendu et renvoyer le PDFApprobation requise / Examen (base64)

Les noms d’outils sont les noms de protocole du registre. Le catalogue d’outils est le catalogue de référence. L’ensemble des outils disponibles dépend de l’édition installée. Les outils Pro n’apparaissent que lorsque le paquet Pro est installé.

  1. create_pdf (ou charge un modèle qui possède déjà des champs de formulaire).
  2. fill_form avec xfdf_data associant les noms de champs à des valeurs.
  3. output_pdf → base64.

Le résultat indique fields_filled, fields_skipped, ainsi que les noms des champs correspondants.

Utilise un modèle dont tu contrôles les noms de champs AcroForm. Valide le XFDF par rapport au schéma XFDF avant de l’envoyer. Vérifie fields_skipped et la liste de noms renvoyée pour détecter les noms qui ne correspondent pas (les noms sont sensibles à la casse). Pour les gros remplissages, reste sous la limite de taille XFDF et fractionne les données si nécessaire.

  • XFDF mal formé. Une erreur d’analyse indique l’emplacement en cause. Échappe les entités XML et inclus l’attribut xmlns.
  • Non-correspondance de nom. Un champ qui ne correspond pas est ignoré en silence, et fields_skipped s’incrémente. Les noms sont sensibles à la casse.
  • Aucun champ de formulaire. Un document sans AcroForm renvoie zéro champ rempli.
  • XFDF trop volumineux. Le serveur rejette les données qui dépassent la limite de taille. Fractionne-les ou supprime les espaces superflus.
  • Pro absent. Avec Core uniquement, fill_form n’est pas enregistré, et son appel renvoie une erreur d’outil inconnu. Sonde d’abord avec diagnostic.capabilities.

Le remplissage est rapide par rapport au rendu. La sortie peut aller de quelques Ko à des dizaines de Ko, selon le nombre de champs et l’incorporation des polices. Le profil est structural.

Les valeurs de champ font partie du contenu du document. Ne place pas de secrets dans les champs de formulaire si tu renvoies ensuite le PDF sur un canal non fiable. Le chemin base64 n’a aucun effet de bord sur le système de fichiers. La sortie vers un fichier est soumise à un contrôle.

ÉnoncéSpécificationClausereference_id
Un champ de formulaire est conservé dans le dictionnaire de champs du formulaire interactif.ISO 32000-2§12.7
Les données fournies deviennent la valeur du champ.ISO 32000-2§12.7

fill_form est un outil de l’édition Pro. Le serveur ne l’enregistre que lorsque le paquet Pro est résolu au démarrage, via la sonde class_exists(). Les déploiements Core ne l’exposent pas.

TransportDisponibleNotes
MCP (stdio)Oui (Pro)Présent uniquement lorsque Pro est installé.
RESTOui (Pro)Idem.
gRPCOui (Pro)Idem.

fill_form est Prudence, car il effectue une mutation de contenu réversible. output_pdf est Approbation requise, rétrogradé à Examen en mode base64 (niveaux de risque HITL).

Sortie base64 :

{ "allowed": true }

La sortie vers un fichier renvoie l’enveloppe de défi décrite dans output-approval.