|
THotPDF.AddXFAPacket / ClearXFAPackets / XFAPacketCount THotPDF XFA forms container (v2.119.51)
|
RegisterAcroFormFont AcroForm Support |
|
Registruje imenovani XFA (XML Forms Architecture) paket za emitovanje unutar AcroForm /XFA unosa dokumenta PDF 1.7 §12.7.6 + §12.7.8 dozvoljava da AcroForm nosi /XFA niz zajedno sa statičkim /Fields nizom ili umesto njega, što omogućava hibridne AcroForm + XFA tokove rada ili čisto dinamičke XFA forme
Delphi syntax: procedure AddXFAPacket(const PacketName: AnsiString; const XMLBytes: TBytes); procedure ClearXFAPackets; function XFAPacketCount: Integer;
Opis Svaki poziv
Pri EndDoc svaki registrovani paket postaje jedan indirektni FlateDecode-komprimovani stream objekat, a AcroForm /XFA niz naizmenično upisuje PDF stringove imena paketa i reference na tokove u redosledu registracije, tako da je raspored byte-deterministic ClearXFAPackets uklanja sve registrovane pakete (korisno pri ponovnoj upotrebi THotPDF instance kroz više dokumenata) XFAPacketCount vraća trenutni broj
Container-level support only HotPDF ne parsira XFA XML, ne implementira XFA dynamic-layout engine, ne izvršava FormCalc ili JavaScript unutar XFA šablona i ne validira strukturu šablona Pozivalac sam izrađuje XFA XML (obično preko Adobe LiveCycle Designer-a ili ručnim pisanjem prema XFA 3.3 specifikaciji) i HotPDF emituje bajtove verbatim
Čitači sa XFA engine-om (stariji Acrobat / Reader, FormsCentral, neki kiosk proizvodi) prikazuju formu; čitači bez XFA engine-a (Adobe Reader DC od 2017 nadalje, većina open-source čitača) prikazuju rezervna AcroForm polja ako je dokument hibridni AcroForm + XFA tok 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 forme (dynamic-layout engine nije deterministički arhivski). ISO 15930 prepress tokovi rada u potpunosti odbacuju interaktivne forme. AddXFAPacket odmah prijavljuje izuzetak pod bilo kojim nenultim PDFACompliance ili PDFXCompliance uz odgovarajuću referencu specifikacije. Duplikat imena paketa prijavljuje izuzetak. Prazan PacketName ili prazan XMLBytes prijavljuje izuzetak. RequirePDFVersion(pdf15) automatski podiže verziju dokumenta
AcroForm dictionary emission AcroForm dict se ispisuje kada /Fields ima bar jedan unos ili kada je registrovan bar jedan XFA paket. Pozivaoci pre v2.119.51 koji ne registruju nijedan paket zadržavaju byte-identičan /AcroForm izlaz
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 wrapper, single-stream, dynamic, and signed XFA Niz /XFA obrasca mora da se otvara i zatvara sa
XFA-to-AcroForm flattening ApplyXFAAsAcroForm mapira XDP/XFA bajtove koje je prosledio pozivalac na trenutnu stranicu kao nativne AcroForm widgete i jednostavnu grafiku stranice. FlattenLoadedXFA vrši istu konverziju za učitani PDF koji već nosi ugrađeni /XFA paket. Prosledite Editable=False da bi generisani widgeti bili samo za čitanje, i pregledajte XFAFlattenWarnings za elemente koji nisu mogli da budu mapirani
See also: AcroForm Support, THotPDF.RegisterAcroFormFont, THPDFPage.AddTextField |