|
THotPDF.RegisterAcroFormFont THotPDF AcroForm
|
AddXFAPacket AcroForm Support SetFormUnicodeFontDict |
|
Регистрира допълнителен Unicode (Type 0 / CID-keyed) шрифт за включване в AcroForm Default Resources (/DR) речника. Позволява на едно PDF да експонира едновременно няколко Unicode шрифта към AcroForm widgets - обикновено за многоезични формуляри, които се нуждаят от латински шрифт плюс CJK шрифт плюс арабски шрифт в един и същ формуляр
Delphi syntax: procedure RegisterAcroFormFont(const FontResourceName: AnsiString; FontIndirectRef: THPDFObject);
Описание AcroForm widgets реферират fonts през Default Resources (/DR) dictionary в AcroForm dict-а, който служи като споделен resource pool за всички form-field appearance streams. Преди v2.119.42 AcroForm /DR излагаше точно един Unicode font (обикновено helper-set Type 0 font, регистриран чрез SetFormUnicodeFontDict), което ограничаваше multilingual form workflows, защото всеки widget трябваше да рендира през същия font program
After v2.119.42 callers can register additional Unicode fonts at arbitrary resource names. Each registered font becomes a
Parameters FontResourceName - PDF Name-ът, който appearance stream /Tf operator-ът реферира. Convention: кратък стабилен identifier без водещ slash (например 'NotoSansArab', 'NotoSansCJK'). HotPDF записва водещия slash при serializing
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);
Сега Arabic-content widgets могат да авторират своите appearance streams с /NotoSansArab 12 Tf, докато Japanese-content widgets използват /NotoSansJP 12 Tf, като споделят един document-wide AcroForm /DR resource pool
Coexistence with SetFormUnicodeFontDict Съществуващият помощник за един шрифт (SetFormUnicodeFontDict) продължава да работи за проекти, които се нуждаят само от един Unicode шрифт в AcroForm /DR. RegisterAcroFormFont е добавъчен: извикващите могат да го използват заедно със SetFormUnicodeFontDict или да заменят SetFormUnicodeFontDict изцяло, когато е нужен повече от един Unicode шрифт
See also: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField |