THotPDF.RegisterAcroFormFont

THotPDF AcroForm /DR multi-font registration (v2.119.42)

 

AddXFAPacket  AcroForm Support  SetFormUnicodeFontDict

Registrira dodatno Unicode (Type 0 / CID-keyed) pisavo za vključitev v slovar AcroForm Default Resources (/DR). Omogoča, da en sam dokument PDF hkrati izpostavi več Unicode pisav gradnikom AcroForm - običajno za večjezične obrazce, ki potrebujejo (na primer) latinsko pisavo, CJK pisavo in arabsko pisavo v istem obrazcu

 

Delphi syntax:

procedure RegisterAcroFormFont(const FontResourceName: AnsiString;

  FontIndirectRef: THPDFObject);

 

Description

Gradniki AcroForm se na pisave sklicujejo prek slovarja Default Resources (/DR) na slovarju AcroForm, ki deluje kot skupni vir za vse appearance streame polj obrazca. Pred v2.119.42 je AcroForm /DR izpostavljal natanko eno Unicode pisavo (običajno pomožno nastavljeno Type 0 pisavo, registrirano prek SetFormUnicodeFontDict), kar je omejevalo večjezične poteke dela obrazcev, ker je moral vsak gradnik izrisovati skozi isti programski paket pisave

 

After v2.119.42 callers can register additional Unicode fonts at arbitrary resource names. Each registered font becomes a /DR /Font /<name> <indirect ref> entry inside the AcroForm /DR dict at EndDoc. Widget appearance streams can then reference any of the registered names through their own /Tf <name> <size> operator inside the appearance content stream.

 

Parameters

FontResourceName - PDF Name, na katerega se sklicuje operator /Tf v appearance streamu. Dogovor: kratek stabilen identifikator brez začetnega poševnika (npr. 'NotoSansArab', 'NotoSansCJK'). HotPDF med serializacijo zapiše začetni poševnik

FontIndirectRef - an existing indirect Type 0 (CID-keyed) font dictionary, typically the result of CreateIndirectFontDict over a font registered via 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);

 

Zdaj lahko gradniki z arabsko vsebino svoje appearance streame avtorirajo z /NotoSansArab 12 Tf, medtem ko gradniki z japonsko vsebino uporabljajo /NotoSansJP 12 Tf, pri čemer delijo en skupni dokumentski AcroForm /DR vir pisav

 

Coexistence with SetFormUnicodeFontDict

Predhodni enojni pripomoček za pisavo (SetFormUnicodeFontDict) še naprej deluje za projekte, ki potrebujejo samo eno Unicode pisavo v AcroForm /DR. RegisterAcroFormFont je dodaten: klicatelji ga lahko uporabljajo poleg SetFormUnicodeFontDict ali pa SetFormUnicodeFontDict v celoti zamenjajo, kadar je potrebnih več kot ena Unicode pisava

 

See also: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField