|
THotPDF.AddXFAPacket / ClearXFAPackets / XFAPacketCount THotPDF XFA forms container (v2.119.51)
|
RegisterAcroFormFont AcroForm Support |
|
Registrira imenovani XFA (XML Forms Architecture) paket za emitiranje unutar dokumentova AcroForm /XFA unosa. PDF 1.7 §12.7.6 + §12.7.8 dopušta da AcroForm nosi /XFA polje uz statičko /Fields polje ili umjesto njega, što omogućuje hibridne AcroForm + XFA tijekove rada ili čisto dinamičke XFA obrasce
Delphi syntax: procedure AddXFAPacket(const PacketName: AnsiString; const XMLBytes: TBytes); procedure ClearXFAPackets; function XFAPacketCount: Integer;
Opis Svaki poziv
datasets - povezivanje podataka (XML korisni teret prema kojem se predložak prikazuje)
Na EndDoc svaki registrirani paket postaje jedan neizravni FlateDecode komprimirani objekt toka, a AcroForm /XFA polje naizmjenično sadrži PDF nizove imena paketa i reference na tokove u redoslijedu registracije, pa je raspored bajtno determinističan. ClearXFAPackets uklanja sve registrirane pakete (korisno pri ponovnoj uporabi instance THotPDF kroz više dokumenata). XFAPacketCount vraća trenutačni broj
Container-level support only HotPDF ne parsira XFA XML, ne implementira XFA dinamički layout engine, ne izvršava FormCalc ili JavaScript unutar XFA predloška i ne provjerava strukturu predloška. Pozivatelj sam izrađuje XFA XML (najčešće putem Adobe LiveCycle Designera ili ručno prema specifikaciji XFA 3.3), a HotPDF emitira bajtove doslovno
Korisnički čitači s XFA engineom (stariji Acrobat / Reader, FormsCentral, neki kiosk proizvodi) prikazuju obrazac; čitači bez XFA enginea (Adobe Reader DC od 2017. nadalje, većina open-source čitača) prikazuju rezervna AcroForm polja ako je dokument hibridni AcroForm + XFA tijek rada
PDF/A and PDF/X compliance gates ISO 19005-1 §6.4.2 / ISO 19005-2 §6.4.2 / ISO 19005-3 §6.4.2 izričito zabranjuju XFA obrasce (dinamički layout engine nije deterministički arhivabilan). ISO 15930 prepress tijekovi rada potpuno odbacuju interaktivne obrasce. AddXFAPacket odmah podiže iznimku pri bilo kojem ne-praznom PDFACompliance ili PDFXCompliance s odgovarajućom referencom specifikacije. Duplicirana imena paketa podižu iznimku. Prazan PacketName ili prazan XMLBytes podižu iznimku. RequirePDFVersion(pdf15) automatski podiže verziju dokumenta
AcroForm dictionary emission AcroForm dict emitira se kada ili
Typical workflow (pure XFA dynamic form)
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); { caller-generated XAdES } PDF.AddXFAPacket('/xdp:xdp', BytesOf('</xdp:xdp>')); PDF.EndDoc;
XDP omotač, single-stream, dinamički i potpisani XFA Obrazac niza
XFA-to-AcroForm flattening ApplyXFAAsAcroForm preslikava XDP/XFA bajtove koje je dostavio pozivatelj na trenutačnu stranicu kao nativne AcroForm widgete i jednostavnu grafiku stranice. FlattenLoadedXFA izvodi istu pretvorbu za učitani PDF koji već nosi ugrađeni /XFA paket. Proslijedite Editable=False kako bi generirani widgeti bili samo za čitanje i provjerite XFAFlattenWarnings za elemente koje nije bilo moguće preslikati
See also: AcroForm Support, THotPDF.RegisterAcroFormFont, THPDFPage.AddTextField |