Pro editie
Form
In het kort
Sectie met titel “In het kort”NextPDF Pro leest en schrijft interactieve formuliergegevens: AcroForm-veldwaarden, XFDF-databestanden en de gegevens die door XFA (XML Forms Architecture)-sjablonen worden gedragen. Het vult de open-source Core-formulierlezer aan met databinding, extractie en serialisatie.
Beschikbaarheid en licentie
Sectie met titel “Beschikbaarheid en licentie”Deze mogelijkheid wordt geleverd in NextPDF Pro (nextpdf/pro) en wordt geactiveerd met een licentie-envelop op Pro-niveau. Een implementatie zonder die rechten laadt de klassen van de mogelijkheid niet. Vergelijk edities en verkrijg een licentie.
Form maakt deel uit van de Pro-editie. Er is geen aparte licentievlag per functie.
Installatie
Sectie met titel “Installatie”composer require nextpdf/pro:^3De Form-mogelijkheid vereist een geldige NextPDF Pro-licentie. Zie Beschikbaarheid en licentie.
Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”Een interactief PDF-formulier — soms een AcroForm genoemd — slaat elk veld op in een veld-dictionary, zoals gedefinieerd in ISO 32000-2 §12.7. NextPDF Pro bouwt voort op de Core-formulierlezer om drie mogelijkheden toe te voegen:
- AcroForm round-trip.
FormDataExtractorleest naam/waarde-paren uit geparseerde formuliervelden en produceert eenXfdfData-object of een plattename → value-map.XfdfWritervoert het omgekeerde uit en genereert een XFDF-document. - XFDF lezen en schrijven. XFDF is het XML-data-uitwisselingsformaat voor formulierwaarden, beschreven door ISO 19444-1:2019.
XfdfParserleest een XFDF-bestand in gestructureerde data;XfdfWriterserialiseert veldwaarden naar XFDF, met een optionele verwijzing terug naar de bron-PDF. - XFA-data-extractie.
XfaParserlokaliseert de XFA-pakketten in een document, voegt de XML-fragmenten samen en parseert de template- en datasets-pakketten tot gestructureerde velddata.
XFA-ondersteuningsbereik
Sectie met titel “XFA-ondersteuningsbereik”XFA-ondersteuning in NextPDF Pro is data-georiënteerd, geen volledige XFA-rendering- of scriptingengine. De parser extraheert en structureert de template- en datasets-pakketten zodat je velddefinities en -waarden kunt lezen. Deze voert geen XFA-formulierberekeningsscripts uit, rendert geen dynamische XFA-lay-outs en doet geen round-trip van elk XFA-pakkettype. Test de parser tegen je specifieke documenten voordat je erop vertrouwt voor een bepaalde XFA-formulierset. Alle XML-parsing schakelt het laden van externe entiteiten uit (XXE-veilig).
Waarom het zo werkt
Sectie met titel “Waarom het zo werkt”XFA-ondersteuning is bewust beperkt tot data, niet tot rendering. ISO 32000-2 markeert de XFA-vermelding van de formulier-dictionary als verouderd in PDF 2.0 (§12.7). Een volledige XFA-lay-out- en scriptingengine zou een verouderd oppervlak najagen dat de meeste workloads niet langer nodig hebben. NextPDF Pro extraheert in plaats daarvan de template- en datasets-pakketten, waar de duurzame velddata leeft, en laat de rest achterwege. Diezelfde houding drijft het XXE-uitgeschakelde parsen en het scanplafond aan, omdat formulierinvoer vaak van niet-vertrouwde partijen komt. Dat houdt het Pro-formulieroppervlak een dunne, voorspelbare uitbreiding van het Core-AcroForm-model.
Ontwerpachtergrond: Van invulbaar formulier naar bevroren record: AcroForm invullen en afvlakken.
API-oppervlak
Sectie met titel “API-oppervlak”| Klasse | Verantwoordelijkheid |
|---|---|
FormDataExtractor | AcroForm-veldwaarden extraheren als XfdfData of een array. |
XfdfParser | Een XFDF-document parsen tot gestructureerde data. |
XfdfWriter | Veldwaarden serialiseren naar XFDF, optionele PDF-verwijzing. |
XfaParser | XFA-template- en datasets-pakketten extraheren en parsen. |
FormDataBinder | Een data-map terug binden op formuliervelden. |
De volledige referentie op methodeniveau staat in de Form deep reference.
Codevoorbeeld — Snelstart
Sectie met titel “Codevoorbeeld — Snelstart”use NextPDF\Pro\Form\FormDataExtractor;use NextPDF\Pro\Form\XfdfWriter;
$values = FormDataExtractor::toArray($fields);$xfdf = XfdfWriter::fromFields($fields, 'invoice.pdf');Codevoorbeeld — Productie
Sectie met titel “Codevoorbeeld — Productie”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()]);}Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”XfaParserwijst PDF-invoer groter dan zijn scanplafond af in plaats van onbegrensde data te lezen.- Een document kan zowel interactieve als niet-interactieve formulieren dragen; extractie richt zich op terminale veld-dictionaries.
- XFDF doet round-trip van platte veldstructuren; diep geneste veldhiërarchieën vereisen mogelijk expliciete verwerking.
Prestaties
Sectie met titel “Prestaties”Extractie en serialisatie zijn lineair in het aantal formuliervelden. De XFA-parsekosten schalen met de grootte van de ingebedde XML-pakketten.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”Alle XML-parsing schakelt externe-entiteitresolutie uit om XXE te voorkomen. Behandel XFDF- en XFA-invoer uit niet-vertrouwde bronnen als vijandig en valideer de geparseerde veldset voordat je deze terug in een document bindt.
Conformiteit
Sectie met titel “Conformiteit”| Gedrag | Referentie | Status |
|---|---|---|
| Model voor interactief formulier / veld-dictionary | ISO 32000-2 §12.7 | Afgestemd (geparafraseerd) |
| XFDF-data-uitwisselingsformaat | ISO 19444-1:2019 | Afgestemd |
Deze tabel legt de specificaties vast waartegen NextPDF Pro is gebouwd. Het is geen verklaring van formele certificering.
Gedragscontract
Sectie met titel “Gedragscontract”FormDataExtractorleest naam/waarde-paren uit geparseerde terminale veld-dictionaries en retourneert eenXfdfData-object of een plattename → value-array.XfdfParserparseert een XFDF-document tot gestructureerde data;XfdfWriterserialiseert veldwaarden naar XFDF met een optionele verwijzing terug naar de bron-PDF.XfaParserlokaliseert de XFA-pakketten, voegt de XML-fragmenten samen en parseert de template- en datasets-pakketten tot gestructureerde velddata. Deze wijst PDF-invoer groter dan zijn scanplafond af in plaats van onbegrensde data te lezen.- XFA-ondersteuning is data-georiënteerd: de parser extraheert en structureert template- en datasets-pakketten. Deze voert geen XFA-formulierberekeningsscripts uit, rendert geen dynamische XFA-lay-outs en doet geen round-trip van elk XFA-pakkettype.
- Alle XML-parsing schakelt externe-entiteitresolutie uit (XXE-veilig).
Enterprise-grensnotitie
Sectie met titel “Enterprise-grensnotitie”Enterprise verandert het Form-gedrag niet. Enterprise voegt hoger-niveau compliance- en archiveringsfuncties toe die apart worden gedocumenteerd; ze zijn niet vereist voor AcroForm-round-trip, XFDF lezen/schrijven of XFA-data-extractie.
Core-fallback / alternatief
Sectie met titel “Core-fallback / alternatief”De open-source formulierlezer van NextPDF Core leest formuliervelden. XFDF lezen/schrijven, XFA-data-extractie en veldbinding zijn Pro-toevoegingen. Zie /modules/form/.
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.
Zie ook
Sectie met titel “Zie ook”- Interop — geversioneerde formulierdata-DTO’s voor externe systemen.
- Core Form module — open-source formulierlezer.
- Form — Deep Reference — referentie op methodeniveau voor de Pro-formulierklassen.