Font Fallback and Vertical Text
HotPDF gali parinkti atsarginius šriftus pagal Unicode raštą, pranešti neišspręstus kodo taškus ir rašyti CJK tekstą tikrujam vertikaliam CID rašymo režimui
Dokumento lygio atsarginės grandinės
THotPDF.SetFontFallbackChain saugo surikiuotąjį šriftų atmainų sąrašą vienai THPDFFontScript kategorijai
THPDFPage.TextOutWithFallback kiekvieną Unicode skaliarą išspręndžia pagal pasirinktąją šriftų atmainą, jos rašto grandinę ir bendrąją grandinę, tada gretimus skaliarus su ta pačia atmaina išduoda kaip vieną teksto atkarpą
- Atsarginės grandinės yra dokumento nustatymai ir lieka prieinamos visuose puslapiuose
- Pasikartojantieji ir tuščieji šriftų atmainų vardai pašalinami, išlaikant kvietėjo tvarką
- Įdiegtų šriftų (face) patikra atmeta tyliąjį GDI pakeitimą dar prieš pripažįstant aprėptį
- Papildomųjų plokštumų kodo taškai iškoduojami iš UTF-16 surrogatų porų dar prieš klasifikavimą
- Kiekviena atsarginė atkarpa naudoja esamąjį įterptąjį Type0 šriftą, poaibių rinkimą,
ToUnicodeir bendrąjį tarppuslapinį šriftų kelią - Atsarginė išdėstytoja tikrina įdiegtas šriftų šeimas su pageidaujamuoju bold ir italic atvaizdu, išlaiko visus šrifto stiliaus, koduotės, dydžio ir rašymo krypties nustatymus tarp atkarpų ir po to atkuria kvietėjo šriftą
Veiksminga diagnostika
AnalyzeUnresolvedGlyphs atlieka tik skaitomąją aprėpties auditą, o TextOutWithFallback užfiksuoja išvesties metu sutiktus neišspręstus kodo taškus
Kiekvienas THPDFUnresolvedGlyphInfo apima kodo tašką, pagrindinį šriftą (face), klasifikuotąjį raštą ir kabliataškiu atskirtą atsarginių šriftų pasiūlymų sąrašą
GetUnresolvedGlyphs grąžina dabartinę dokumento ataskaitą, o ClearUnresolvedGlyphs pradeda naują ataskaitų intervalą
Aiškaus stiliaus THotPDF.ResolveFontForCodePoint ir THotPDF.AnalyzeUnresolvedGlyphs perkravos priima TFontStyles, kad patikra galėtų apžiūrėti tą patį atvaizdą, kuris naudotas išvedimui; jų originaliosios perkravos toliau tikrina įprastus atvaizdus
Teksto langeliai, SVG įterptasis tekstas ir įkeltos teksto išvaizdos atsarginės išdėstytojos metu išlaiko stilizuotąsias šriftų šeimas, vietoj to, kad PDF vidinius šriftų vardus laikytų sistemingomis šeimomis arba kiekvieną atkarpą pakeistų įprastuoju atvaizdu
Vertikalusis CJK rašymas
THPDFPage.TextOutVertical pasirenka dabartinio šrifto (face) vertikalųjį variantą ir išveda vieną Identity-V teksto atkarpą, vietoj to, kad kiekvieną simbolį dėliotų rankomis
- CID palikuonio šrifte yra
/DW2numatytosios reikšmės ir atskirus glifus apibūdinantys/W2įrašai - OpenType
vheairvmtxpateikia vertikaliuosius žingsnius ir viršutinius šoninius atstumus; TrueType kilmės taškai kildinami iš kiekvienoglyfribinės dėžės, oVORGpateikia autorityvius CFF kilmės numatymus ir išimtis - Šriftai be vertikaliųjų lentelių naudoja konfigūruojamąjį 1000 vienetų žingsnį ir 880 vienetų kilmės numatymus
- Su
sfVerticalAlternatesvisa ilgio nekeičianti GSUB atkarpa, kai ši funkcija deklaruota, naudojavrt2, kitaip nukrenta įvert, išlaikydama aktyvųjį raštą ir kalbos pasirinkimą - Kai šriftas turi Unicode vertikaliąsias vaizdines formas, bet neturi skyrybos pakeitimo, kableliai, taškai, skliaustai, brūkšniai, daugtaškiai ir susiję skyrybos ženklai naudoja tuos glifus, o
ToUnicodeišlaiko pirminį tekstą - Vertikaliosios
vkrnirvpalGPOS funkcijos lieka prieinamos perShapingFeatures GetVerticalTextAdvancegrąžina naudotojo erdvės žingsnį, reikalingą padėti kitai vertikaliajai atkarpai
Pavyzdys
PDF.SetFontFallbackChain(hfsCJK,
['Microsoft YaHei UI', 'Yu Gothic UI', 'Malgun Gothic']);
PDF.SetFontFallbackChain(hfsEmoji, ['Segoe UI Emoji']);
PDF.CurrentPage.SetFont('Arial', [], 12);
PDF.CurrentPage.TextOutWithFallback(72, 72, 0, Text);
PDF.CurrentPage.SetFont('Yu Gothic UI', [], 14);
PDF.CurrentPage.TextOutVertical(420, 72, VerticalText);
Missing := PDF.GetUnresolvedGlyphs;