THotPDF.AddXFAPacket / ClearXFAPackets / XFAPacketCount

THotPDFXFA-formularbeholder (v2.119.51)

 

RegisterAcroFormFont  AcroForm Support

Registrerer en navngivet XFA (XML Forms Architecture) pakke til emission i dokumentets AcroForm/XFAindgang. PDF 1.7 §12.7.6 + §12.7.8 lader en AcroForm bære et/XFAarray sideløbende med (eller i stedet for) det statiske/Fieldsarray, hvilket muliggør hybride AcroForm + XFA arbejdsgange eller rene dynamiske XFA-formularer

 

Delphi-syntaks:

procedure AddXFAPacket(const PacketName: AnsiString;const XMLBytes: TBytes);

procedure ClearXFAPackets;

function XFAPacketCount: Integer;

 

Beskrivelse

Hvert kald tilAddXFAPacketregistrerer én navngivet pakke. Typiske navne (i henhold til XFA 3.3-specifikationen og PDF 1.7 §12.7.8 Tabel 234):

 

template- formularlayout + scripts (den største pakke i de fleste XFA-dokumenter)

datasets- databinding (den XML-nyttelast, som skabelonen gengives mod)

config- fremviserkonfiguration

connectionSet- eksterne dataforbindelser

localeSet- landespecifikke formateringsregler

stylesheet- XSLT- eller CSS-styling

xfdf- XFDF-formulardata-overlay

xmpmeta- XMP-metadata

signature- signaturrelaterede XFA-data

sourceSet- kildesidedatadefinitioner

 

At EndDocbliver hver registreret pakke til ét indirekte FlateDecode-komprimeret strømobjekt, og AcroForm/XFAarrayet skifter pakkenavns PDF-strenge med strømreferencer i registreringsrækkefølge, så layoutet er byte-deterministiskClearXFAPacketsfjerner alle registrerede pakker (nyttigt til at genbruge enTHotPDFinstans på tværs af flere dokumenter)XFAPacketCountreturnerer det aktuelle antal

 

Kun understøttelse på beholderniveau

HotPDF parserernotikke XFA XML, implementerernotikke den dynamiske XFA-layoutmotor, eksekverernotikke FormCalc eller JavaScript i XFA-skabelonen, og validerernotikke skabelonstrukturen. Kalderen skriver selv XFA XML (typisk via Adobe LiveCycle Designer eller manuelt mod XFA 3.3-specifikationen), og HotPDF udsender bytes ordret

 

Forbrugerlæsere med en XFA-motor (ældre Acrobat / Reader, FormsCentral, visse kioskelementer) gengiver formularen; læsere uden en XFA-motor (Adobe Reader DC fra 2017 og fremefter, de fleste open source-læsere) viser fallback AcroForm-felterne, hvis dokumentet er en hybrid AcroForm + XFA arbejdsgang

 

Overensstemmelsesporte for PDF/A og PDF/X

ISO 19005-1 §6.4.2 / ISO 19005-2 §6.4.2 / ISO 19005-3 §6.4.2 tillader alle eksplicit ikke XFA-formularer (den dynamiske layoutmotor kan ikke arkiveres deterministisk). ISO 15930 prepress-arbejdsgange afviser interaktive formularer fuldstændigtAddXFAPacketrejser med det samme under enhver ikke-tomPDFACompliance or PDFXCompliancemed den relevante spec-reference. Dublerede pakkenavne rejser. TomPacketNameeller tomXMLBytes raiseRequirePDFVersion(pdf15)auto-bumps dokumentversionen

 

AcroForm-ordbogsemission

AcroForm-ordbogen udsendes, nåreither /Fieldshar mindst én indgangormindst én XFA-pakke er blevet registreret. Kaldere før v2.119.51, der ikke registrerer nogen pakker, beholder byte-identisk/AcroForm output

 

Typisk arbejdsgang (ren dynamisk XFA-formular)

 

PDF.BeginDoc;

TemplateBytes := TFile.ReadAllBytes('form-template.xml');

DataBytes := TFile.ReadAllBytes('form-data.xml');

PDF.AddXFAPacket('xdp:xdp', BytesOf('<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">'));

PDF.AddXFAPacket('template', TemplateBytes);

PDF.AddXFAPacket('datasets', DataBytes);

PDF.AddXFASignaturePacket(SigBytes); { kalder-genereret XAdES }

PDF.AddXFAPacket('/xdp:xdp', BytesOf('</xdp:xdp>'));

PDF.EndDoc;

 

XDP-indpakning, enkelt-strøm, dynamisk og signeret XFA

Arrayet/XFAform skal åbne og lukke medxdp:xdpindpakningspakker, som eksemplet nu viser (ISO 32000-1 §12.7.8). Relaterede XFA-API'er:SetXFADocumentskriver hele XFA/XDP-dokumentet som en enkelt/XFAstrøm, gensidigt udelukkende medAddXFAPacket; XFANeedsRenderingindstiller Catalog/NeedsRenderingflaget (ISO 32000-1 §7.7.2), så en fremviser regenererer en dynamisk XFA-formular ved første åbning;AddXFASignaturePacketindlejrer en kalder-genereret XAdES / XML-DSig-signatur somsignaturepakken. HotPDF genererer eller parser aldrig signaturen - kalderen producerer den med et XML-kryptografisk bibliotek over XFA-datasættene

 

XFA-til-AcroForm fladgøring

ApplyXFAAsAcroFormkortlægger kalder-leverede XDP/XFA-bytes på den aktuelle side som indfødte AcroForm-widgets og simpel sidegrafikFlattenLoadedXFAudfører samme konvertering for en indlæst PDF, der allerede bærer en indlejret/XFApakke. OverførEditable=Falsefor at gøre genererede widgets skrivebeskyttede, og inspicerXFAFlattenWarningsfor elementer, der ikke kunne kortlægges

 

Se også: AcroForm Support, THotPDF.RegisterAcroFormFont, THPDFPage.AddTextField