|
THotPDF.RegisterAcroFormFont THotPDF AcroForm
|
AddXFAPacket AcroForm Support SetFormUnicodeFontDict |
|
Registruoja papildomą Unicode (Type 0 / CID-keyed) šriftą įtraukimui į AcroForm Default Resources (/DR) žodyną. Leidžia vienam PDF dokumentui tuo pačiu metu pateikti kelis Unicode šriftus AcroForm valdikliams - dažniausiai naudojama daugiakalbėms formoms, kurioms tame pačiame formate reikia, pavyzdžiui, lotyniško šrifto, CJK šrifto ir arabiško šrifto
Delphi syntax: procedure RegisterAcroFormFont(const FontResourceName: AnsiString; FontIndirectRef: THPDFObject);
Aprašas AcroForm widgetai nurodo šriftus per Default Resources (/DR) žodyną AcroForm žodyne, kuris veikia kaip bendras visų formos laukų appearance streamų resursų telkinys. Iki v2.119.42 AcroForm /DR atskleisdavo tik vieną Unicode šriftą (paprastai pagalbinės funkcijos nustatytą Type 0 šriftą, registruotą per SetFormUnicodeFontDict), o tai ribojo daugiakalbius formų srautus, nes kiekvienas widgetas turėjo būti atvaizduojamas tuo pačiu šriftu
Nuo v2.119.42 kviestinės pusės gali registruoti papildomus Unicode šriftus bet kokiais resurso pavadinimais. Kiekvienas registruotas šriftas EndDoc metu tampa /DR /Font /<name> <indirect ref> įrašu AcroForm /DR žodyne. Tada valdiklių išvaizdos srautai gali kreiptis į bet kurį registruotą pavadinimą per savo /Tf <name> <size> operatorių išvaizdos turinio sraute
Parameters FontResourceName - PDF Name, į kurį nurodo išvaizdos srauto /Tf operatorius. Konvencija: trumpas stabilus identifikatorius be priekinio brūkšnio (pvz., 'NotoSansArab', 'NotoSansCJK'). HotPDF serializuodamas įrašo priekinį brūkšnį
Typical workflow (multilingual form)
PDF.RegisterUnicodeTTF('NotoSansArab', 'NotoSansArabic-Regular.ttf'); PDF.RegisterUnicodeTTF('NotoSansJP' , 'NotoSansJP-Regular.otf'); ArabRef := PDF.CreateIndirectFontDict('NotoSansArab'); JPRef := PDF.CreateIndirectFontDict('NotoSansJP'); PDF.RegisterAcroFormFont('NotoSansArab', ArabRef); PDF.RegisterAcroFormFont('NotoSansJP' , JPRef);
Dabar arabiško turinio valdikliai gali kurti savo išvaizdos srautus naudodami /NotoSansArab 12 Tf, o japoniško turinio valdikliai - /NotoSansJP 12 Tf, dalindamiesi vienu viso dokumento AcroForm /DR resursų telkiniu
Coexistence with SetFormUnicodeFontDict Ankstesnė vieno šrifto pagalbinė funkcija (SetFormUnicodeFontDict) vis dar veikia projektams, kuriems AcroForm /DR reikia tik vieno Unicode šrifto. RegisterAcroFormFont yra priedinis: kūrėjai gali jį naudoti kartu su SetFormUnicodeFontDict arba visiškai ją pakeisti, kai reikia daugiau nei vieno Unicode šrifto
See also: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField |