THotPDF.RegisterAcroFormFont

THotPDF AcroForm /DRregistrering af flere skrifttyper (v2.119.42)

 

AddXFAPacket  AcroForm-understøttelse  SetFormUnicodeFontDict

Registrerer en yderligere Unicode-skrifttype (Type 0 / CID-kodet) til inklusion i AcroForm Default Resources (/DR) ordbog; lader et enkelt PDF-dokument eksponere flere Unicode-skrifttyper til AcroForm-widgets samtidigt - typisk brugt til flersprogede formularer, der har brug for (for eksempel) en latinsk skrifttype plus en CJK-skrifttype plus en arabisk skrifttype i den samme formular

 

Delphi-syntaks:

procedure RegisterAcroFormFont(const FontResourceName: AnsiString;

FontIndirectRef: THPDFObject);

 

Beskrivelse

AcroForm-widgets refererer til skrifttyper via Default Resources (/DR) ordbog på AcroForm-ordbogen, som fungerer som den fælles ressourcepulje for alle udseendestrømme for formularfelter; før v2.119.42 eksponerede AcroForm/DRpræcis én Unicode-skrifttype (typisk hjælpeopsat Type 0-skrifttype registreret viaSetFormUnicodeFontDict), hvilket begrænsede flersprogede formulararbejdsgange, fordi hver widget skulle gengives via det samme skrifttypeprogram

 

Efter v2.119.42 kan kaldere registrere yderligere Unicode-skrifttyper under vilkårlige ressourcenavne; hver registreret skrifttype bliver en/DR /Font /<name> <indirect ref>post i AcroForm/DRordbogen påEndDoc; widget-udseendestrømme kan derefter referere til ethvert af de registrerede navne via deres egen/Tf <name> <size>operator i udseende-indholdsstrømmen

 

Parametre

FontResourceName- det PDF-navn, som udseendestrømmens/Tfoperator refererer til; konvention: en kort, stabil identifikator uden indledende skråstreg (f.eks'NotoSansArab', 'NotoSansCJK'); HotPDF skriver den indledende skråstreg under serialisering

FontIndirectRef- en eksisterende indirekte Type 0 (CID-kodet) skrifttypeordbog, typisk resultatet afCreateIndirectFontDictover en skrifttype registreret viaRegisterUnicodeTTF.

 

Typisk arbejdsgang (flersproget formular)

 

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);

 

Nu kan widgets med arabisk indhold oprette deres udseendestrømme med/NotoSansArab 12 Tfmens widgets med japansk indhold bruger/NotoSansJP 12 Tf, der deler én dokumentdækkende AcroForm/DRressourcepulje

 

Sameksistens med SetFormUnicodeFontDict

Den eksisterende enkeltskrifttypehjælper (SetFormUnicodeFontDict) virker stadig i projekter, der kun behøver én Unicode-skrifttype i AcroForm /DR. RegisterAcroFormFont er additiv: kaldere kan bruge den sammen med SetFormUnicodeFontDict eller erstatte SetFormUnicodeFontDict helt, når mere end én Unicode-skrifttype behøves

 

Se også: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm-understøttelse, THPDFPage.AddTextField