Ga naar inhoud

Een PDF-formulier invullen met NextPDF Connect (Pro)

Vul interactieve PDF-formuliervelden met NextPDF Connect met XML Forms Data Format (XFDF). De tool voor ondertekening en formulieren heet fill_form. De Pro-toolprovider registreert new FillFormTool(), met fill_form als protocolnaam. fill_form is een tool op Pro-niveau. Tijdens het opstarten controleert de server met class_exists() of het Pro-pakket aanwezig is en registreert de tool alleen wanneer het pakket aanwezig is. Als alleen Core is geïnstalleerd, ontbreekt fill_form in het register.

Terminal window
composer require nextpdf/server
composer require nextpdf/pro

Bind een transport. Controleer vervolgens met diagnostic.capabilities of de tool bestaat (zie environment-diagnostics). Ga niet uit van een vaste set tools.

XFDF koppelt veldnamen aan waarden met <field>-elementen. Elke naam moet overeenkomen met een AcroForm-veld dat al in het doeldocument bestaat. De velddictionary van het interactieve formulier bevat elk veld (ISO 32000-2 §12.7), en de opgegeven waarde wordt de waarde van het veld (ISO 32000-2 §12.7). Als een naam met geen enkel veld overeenkomt, slaat de tool die over in plaats van dit als fout te behandelen. De tool rapporteert hoeveel velden zijn ingevuld en hoeveel zijn overgeslagen.

ToolTierRolRisiconiveau
create_pdfCoreDe sessie openenSafe
fill_formProXFDF-waarden toepassen op AcroForm-veldenCaution
output_pdfCoreDe PDF renderen en retournerenApproval Required / Review (base64)

Toolnamen zijn de protocolnamen van het register. De toolcatalogus is de officiële catalogus. De geïnstalleerde tier bepaalt welke tools beschikbaar zijn. Pro-tools verschijnen alleen wanneer het Pro-pakket is geïnstalleerd.

  1. create_pdf (of laad een sjabloon dat al formuliervelden bevat).
  2. fill_form met xfdf_data, waarmee veldnamen aan waarden worden gekoppeld.
  3. output_pdf → base64.

Het resultaat rapporteert fields_filled, fields_skipped en de overeenkomende veldnamen.

Gebruik een sjabloon met AcroForm-veldnamen die u beheert. Valideer de XFDF tegen het XFDF-schema voordat u deze verstuurt. Controleer fields_skipped en de geretourneerde namenlijst om naamafwijkingen te detecteren (namen zijn hoofdlettergevoelig). Blijf bij grote invulopdrachten onder de XFDF-groottelimiet en splits de gegevens indien nodig.

  • Onjuist opgemaakte XFDF. Een parsefout identificeert de problematische locatie. Escape XML-entiteiten en neem de xmlns op.
  • Naamafwijking. Een niet-overeenkomende veldnaam wordt stilzwijgend overgeslagen en fields_skipped wordt verhoogd. Namen zijn hoofdlettergevoelig.
  • Geen formuliervelden. Een document zonder AcroForm levert nul ingevulde velden op.
  • XFDF te groot. De server weigert gegevens die de groottelimiet overschrijden. Splits de gegevens of verwijder overbodige witruimte.
  • Pro afwezig. Als alleen Core is geïnstalleerd, is fill_form niet geregistreerd en retourneert een aanroep een unknown-tool-fout. Controleer dit eerst met diagnostic.capabilities.

Invullen gaat snel vergeleken met renderen. De uitvoer varieert van een paar KB tot tientallen KB, afhankelijk van het aantal velden en de lettertype-inbedding. Het profiel is structural.

Veldwaarden worden documentinhoud. Plaats geen geheimen in formuliervelden als u de PDF vervolgens via een niet-vertrouwd kanaal retourneert. Het base64-pad heeft geen neveneffecten op het bestandssysteem. Bestandsuitvoer is afgeschermd.

BeweringSpecClausulereference_id
Een formulierveld wordt bewaard in de velddictionary van het interactieve formulier.ISO 32000-2§12.7
De opgegeven gegevens worden de waarde van het veld.ISO 32000-2§12.7

fill_form is een tool op Pro-niveau. De server registreert deze alleen wanneer het Pro-pakket bij het opstarten kan worden gevonden (de class_exists()-controle). Core-implementaties stellen de tool niet beschikbaar.

TransportBeschikbaarNotities
MCP (stdio)Ja (Pro)Alleen aanwezig wanneer Pro is geïnstalleerd.
RESTJa (Pro)Hetzelfde.
gRPCJa (Pro)Hetzelfde.

fill_form is Caution omdat het een omkeerbare inhoudsmutatie is. output_pdf is Approval Required en wordt in base64-modus afgewaardeerd naar Review (HITL-risiconiveaus).

Base64-uitvoer:

{ "allowed": true }

Bestandsuitvoer retourneert de challenge-envelop die wordt beschreven in output-approval.