|
Regisztrál egy további Unicode (Type 0 / CID-kulcsos) betűtípust az AcroForm alapértelmezett erőforrások (/DR) szótárába történő felvételhez. Lehetővé teszi, hogy egyetlen PDF-dokumentum egyszerre több Unicode betűtípust tegyen elérhetővé az AcroForm widgetek számára - jellemzően olyan többnyelvű űrlapoknál használatos, amelyeknek (például) egy latin betűtípusra, plusz egy CJK betűtípusra, plusz egy arab betűtípusra van szükségük ugyanabban az űrlapban
Delphi szintaxis:
procedure RegisterAcroFormFont(const FontResourceName: AnsiString;
FontIndirectRef: THPDFObject);
Leírás
AcroForm widgetek a betűtípusokra az AcroForm szótárban található alapértelmezett erőforrások (/DR) szótárán keresztül hivatkoznak, amely közös erőforrás-készletként szolgál az összes űrlapmező megjelenítési adatfolyamához (appearance streams). A v2.119.42-es verzió előtt az AcroForm /DR pontosan egy Unicode betűtípust tett elérhetővé (jellemzően a SetFormUnicodeFontDict segítségével regisztrált Type 0 segéd-betűtípust), ami korlátozta a többnyelvű űrlapok munkafolyamatait, mert minden widgetnek ugyanazzal a betűtípus-programmal kellett renderelnie
A v2.119.42-es verzió után a hívók tetszőleges erőforrásneveken regisztrálhatnak további Unicode betűtípusokat. Minden regisztrált betűtípus egy-egy /DR /Font /<name> <indirect ref> bejegyzéssé válik az AcroForm /DR szótárában az EndDoc meghívásakor. A widget megjelenítési adatfolyamai ezután a saját megjelenítési tartalom-adatfolyamukban lévő /Tf <név> <méret> operátoron keresztül hivatkozhatnak a regisztrált nevek bármelyikére
Paraméterek
FontResourceName - a PDF név, amelyre a megjelenítési adatfolyam /Tf operátora hivatkozik. Konvenció: egy rövid, stabil azonosító kezdő perjel nélkül (pl. 'NotoSansArab', 'NotoSansCJK'). A HotPDF a kezdő perjelet a szerializáláskor írja ki
FontIndirectRef - egy meglévő közvetett Type 0 (CID-kulcsos) betűtípus-szótár, amely jellemzően a RegisterUnicodeTTF-en keresztül regisztrált betűtípusra alkalmazott CreateIndirectFontDict eredménye
Tipikus munkafolyamat (többnyelvű űrlap)
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);
Így az arab nyelvű widgetek a megjelenítési adatfolyamaikat a /NotoSansArab 12 Tf kóddal, míg a japán nyelvű widgetek a /NotoSansJP 12 Tf kóddal hozhatják létre, megosztva egyetlen dokumentumszintű AcroForm /DR erőforrás-készletet
Együttélés a SetFormUnicodeFontDict metódussal
A már meglévő egy-betűtípusú segédlet (SetFormUnicodeFontDict) továbbra is működik az olyan projekteknél, amelyeknek csak egy Unicode betűtípusra van szükségük az AcroForm /DR-ben. A RegisterAcroFormFont additív: a hívók használhatják a SetFormUnicodeFontDict mellett, vagy teljesen felválthatják a SetFormUnicodeFontDict-et, ha egynél több Unicode betűtípusra van szükség
Lásd még: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField
|