|
THotPDF.AddXFAPacket / ClearXFAPackets / XFAPacketCount THotPDF XFA forms container (v2.119.51)
|
RegisterAcroFormFont AcroForm Support |
|
Registrira poimenovani paket XFA (XML Forms Architecture) za izpis znotraj vnosa AcroForm /XFA v dokumentu. PDF 1.7 §12.7.6 + §12.7.8 omogoča, da AcroForm nosi polje /XFA poleg (ali namesto) statičnega polja /Fields, kar omogoča hibridne poteke AcroForm + XFA ali čiste dinamične obrazce XFA
Delphi syntax: procedure AddXFAPacket(const PacketName: AnsiString; const XMLBytes: TBytes); procedure ClearXFAPackets; function XFAPacketCount: Integer;
Description Vsak klic
Ob EndDoc vsak registrirani paket postane en posredni tok, stisnjen s FlateDecode, in polje AcroForm /XFA izmenično zapisuje imena paketov kot PDF nize ter sklice na tokove v vrstnem redu registracije, zato je postavitev bitno deterministična. ClearXFAPackets odstrani vse registrirane pakete (uporabno, kadar isti primerek THotPDF uporabljate za več dokumentov). XFAPacketCount vrne trenutno število
Container-level support only HotPDF ne razčlenjuje XFA XML, ne implementira dinamičnega postavitvenega mehanizma XFA, ne izvaja FormCalc ali JavaScript znotraj predloge XFA in ne preverja strukture predloge. Klicatelj XFA XML pripravi sam (običajno z Adobe LiveCycle Designerjem ali ročnim pisanjem glede na specifikacijo XFA 3.3), HotPDF pa bajte izpiše nespremenjene
Bralniki potrošniki z mehanizmom XFA (starejši Acrobat / Reader, FormsCentral, nekateri kiosk izdelki) obrazec izrišejo; bralniki brez mehanizma XFA (Adobe Reader DC od leta 2017 naprej, večina odprtokodnih bralnikov) prikažejo rezervna polja AcroForm, če je dokument hibridni potek AcroForm + XFA
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 izrecno prepovedujejo obrazce XFA (dynamični mehanizem postavitve ni deterministično arhivirljiv). Poteki dela ISO 15930 za predpripravo zavrnejo interaktivne obrazce v celoti. AddXFAPacket ob kateri koli neprazni PDFACompliance ali PDFXCompliance skupaj z ustreznim sklicem na specifikacijo sproži takojšnji napaka. Podvojena imena paketov sprožijo napako. Prazno PacketName ali prazni XMLBytes sprožijo napako. RequirePDFVersion(pdf15) samodejno poviša različico dokumenta
AcroForm dictionary emission Slovar AcroForm se izpiše, kadar ima ali
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 Polje
XFA-to-AcroForm flattening ApplyXFAAsAcroForm preslika XDP/XFA bajte, ki jih poda klicatelj, na trenutno stran kot izvorne gradnike AcroForm in preprosto grafiko strani. FlattenLoadedXFA izvede isto pretvorbo za naložen PDF, ki že vsebuje vdelani paket /XFA. Pass Editable=False, da so ustvarjeni gradniki samo za branje, in XFAFlattenWarnings preglejte za elemente, ki jih ni bilo mogoče preslikati
See also: AcroForm Support, THotPDF.RegisterAcroFormFont, THPDFPage.AddTextField |