|
Rekisteröi ylimääräisen Unicode-fontin (Type 0 / CID-keyed) sisällytettäväksi AcroForm-oletusresurssisanastoon (/DR). Sallii yksittäisen PDF-dokumentin tarjota useita Unicode-fontteja AcroForm-elementeille samanaikaisesti – tyypillisesti käytössä monikielisissä lomakkeissa, jotka tarvitsevat (esimerkiksi) latinalaisen fontin, CJK-fontin ja arabialaisen fontin samassa lomakkeessa
Delphi syntax:
procedure RegisterAcroFormFont(const FontResourceName: AnsiString;
FontIndirectRef: THPDFObject);
Kuvaus
AcroForm-elementit viittaavat fontteihin AcroForm-sanakirjan oletusresurssisanaston (/DR, Default Resources) kautta, joka toimii jaettuna resurssialtaana kaikille lomakekenttien ulkoasuvirroille. Ennen versiota v2.119.42 AcroForm-sanakirjan /DR toi esille täsmälleen yhden Unicode-fontin (tyypillisesti apuohjelman asettaman Type 0 -fontin, joka oli rekisteröity metodin SetFormUnicodeFontDict kautta), mikä rajoitti monikielisten lomakkeiden työnkulkuja, koska jokaisen elementin piti piirtyä saman fonttiohjelman kautta
Version v2.119.42 jälkeen kutsujat voivat rekisteröidä ylimääräisiä Unicode-fontteja vapaavalintaisilla resurssinimillä. Jokaisesta rekisteröidystä fontista tulee /DR /Font / -merkintä AcroFormin /DR-sanakirjaan vaiheessa EndDoc. Elementin ulkoasuvirrat voivat sitten viitata mihin tahansa rekisteröityyn nimeen oman /Tf -operaattorinsa kautta ulkoasun sisältövirrassa
Parameters
FontResourceName – PDF-nimi, johon ulkoasuvirran /Tf-operaattori viittaa. Käytäntö: lyhyt ja vakaa tunniste ilman alkukauttaviivaa (esim. 'NotoSansArab', 'NotoSansCJK'). HotPDF kirjoittaa alkukauttaviivan sarjallistamisen yhteydessä
FontIndirectRef – olemassa oleva epäsuora Type 0 (CID-keyed) -fonttisanasto, tyypillisesti tulos metodista CreateIndirectFontDict fontille, joka on rekisteröity metodin RegisterUnicodeTTF kautta
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);
Nyt arabiankielistä sisältöä käyttävät elementit voivat luoda ulkoasuvirtansa määrityksellä /NotoSansArab 12 Tf, kun taas japaninkielistä sisältöä käyttävät elementit käyttävät määritystä /NotoSansJP 12 Tf jakaen yhden dokumentin laajuisen AcroFormin /DR-resurssialtaan
Rinnakkaiselo metodin SetFormUnicodeFontDict kanssa
Aiempi yhden fontin apumetodi (SetFormUnicodeFontDict) toimii edelleen projekteissa, jotka tarvitsevat vain yhden Unicode-fontin AcroForm-määrityksessä /DR. Metodi RegisterAcroFormFont on lisäyksellinen: kutsujat voivat käyttää sitä SetFormUnicodeFontDict-metodin lisäksi tai korvata SetFormUnicodeFontDict-metodin kokonaan, kun tarvitaan useampaa kuin yhden Unicode-fonttia
Katso myös: THotPDF.SetFormUnicodeFontDict, THotPDF.CreateIndirectFontDict, AcroForm Support, THPDFPage.AddTextField
|