|
THotPDF.RegisterAcroFormFont THotPDF AcroForm
|
AddXFAPacket AcroForm Support SetFormUnicodeFontDict |
|
Registruje dodatočný Unicode font (Type 0 / CID-keyed) na zahrnutie do slovníka AcroForm Default Resources (/DR). Umožňuje jedinému PDF dokumentu sprístupniť viac Unicode fontov widgetom AcroForm súčasne - typicky sa používa pre viacjazyčné formuláre, ktoré potrebujú napríklad latinský font plus CJK font plus arabský font v tom istom formulári
Delphi syntax: procedure RegisterAcroFormFont(const FontResourceName: AnsiString; FontIndirectRef: THPDFObject);
Opis Widgety AcroForm odkazujú na fonty cez slovník Default Resources (/DR) v slovníku AcroForm, ktorý slúži ako zdieľaný zásobník zdrojov pre všetky vzhľadové streamy polí formulára. Pred verziou v2.119.42 odhalil AcroForm /DR presne jeden Unicode font, zvyčajne pomocný Type 0 font zaregistrovaný cez SetFormUnicodeFontDict, čo obmedzovalo viacjazyčné pracovné postupy formulárov, pretože každý widget musel renderovať cez ten istý fontový program
After v2.119.42 callers can register additional Unicode fonts at arbitrary resource names. Each registered font becomes a
Parameters FontResourceName - PDF Name, na ktorý odkazuje operátor /Tf vo vzhľadovom streame. Konvencia: krátky stabilný identifikátor bez úvodnej lomky (napr. NotoSansArab, NotoSansCJK). HotPDF pri serializácii zapisuje úvodnú lomku FontIndirectRef - existujúci nepriamy slovník fontu Type 0 (CID-keyed), zvyčajne výsledok CreateIndirectFontDict nad fontom zaregistrovaným cez RegisterUnicodeTTF
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);
Widgety s arabským obsahom môžu teraz vytvárať svoje vzhľadové streamy pomocou /NotoSansArab 12 Tf, zatiaľ čo widgety s japonským obsahom používajú /NotoSansJP 12 Tf, pričom oba zdieľajú jeden dokumentový zásobník zdrojov AcroForm /DR
Coexistence with SetFormUnicodeFontDict Predchádzajúca jednopísmová pomocná funkcia SetFormUnicodeFontDict naďalej funguje pre projekty, ktoré potrebujú iba jedno Unicode písmo v AcroForm /DR. RegisterAcroFormFont je prírastková: volajúci ju môžu použiť popri SetFormUnicodeFontDict alebo SetFormUnicodeFontDict úplne nahradiť, keď je potrebných viac ako jedno Unicode písmo
See also: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField |