Nadomestne pisave in navpično besedilo
HotPDF lahko izbere nadomestne pisave po skripti Unicode, poroča o kodnih točkah, ki ostanejo nerešene, in zapiše besedilo CJK prek pravega navpičnega načina pisanja CID
Verige nadomestnih pisav na ravni dokumenta
THotPDF.SetFontFallbackChain shrani urejen seznam pisav za eno kategorijo THPDFFontScript
THPDFPage.TextOutWithFallback razreši vsako skalarno vrednost Unicode glede na izbrano pisavo, njeno verigo skript in skupno verigo, nato izpiše sosednje skalarne vrednosti z isto pisavo kot eno besedilno zaporedje
- Verige nadomestnih pisav so nastavitve dokumenta in ostanejo na voljo prek strani
- Podvojena in prazna imena pisav se odstranijo, pri tem pa se ohrani vrstni red klicatelja
- Preverjanje nameščenih pisav zavrne tiho zamenjavo GDI, preden sprejme pokritost
- Skalarne vrednosti dopolnilne ravnine se pred razvrščanjem dekodirajo iz nadomestnih parov UTF-16
- Vsako zaporedje nadomestne pisave uporablja obstoječo vdelano pisavo Type0, podmnožičenje,
ToUnicodein skupno pot pisave prek strani - Postavitev z nadomestnimi pisavami preveri nameščene družine pisav z zahtevano pisavo krepko ali ležeče, ohrani vse nastavitve sloga pisave, nabora znakov, velikosti in smeri pisanja čez zaporedja ter nato obnovi pisavo klicatelja
Izvedljive diagnostike
AnalyzeUnresolvedGlyphs izvede revizijo pokritosti samo za branje, TextOutWithFallback pa med izhodom beleži nerešene skalarne vrednosti
Vsak THPDFUnresolvedGlyphInfo vsebuje skalarno kodno točko, primarno pisavo, razvrščeno skripto in s podpičji ločen seznam predlogov nadomestnih pisav
GetUnresolvedGlyphs vrne trenutno poročilo dokumenta, ClearUnresolvedGlyphs pa začne novo interval poročanja
Različici THotPDF.ResolveFontForCodePoint in THotPDF.AnalyzeUnresolvedGlyphs z izrecnim slogom sprejmeta TFontStyles, tako da lahko predhodni pregled vpogleda v isto pisavo, ki se uporabi za izpis; njuni izvirni različici še naprej pregledujeta navadne pisave
Besedilna polja, vgrajeno besedilo SVG in videzi naloženega besedila ohranijo pisave s slogom skozi postavitev z nadomestnimi pisavami, namesto da bi imena notranjih pisav PDF obravnavali kot sistemske družine ali vsako zaporedje preklopili na navadno pisavo
Navpično pisanje CJK
THPDFPage.TextOutVertical izbere navpično različico trenutne pisave in izpiše eno besedilno zaporedje Identity-V namesto ročnega pozicioniranja vsakega znaka
- Potomska pisava CID vsebuje privzete vrednosti
/DW2in vnose/W2specifične za glif - OpenType
vheainvmtxzagotavljata navpične napredke in zgornje sidebearing vrednosti; izhodišča TrueType se izpeljejo iz omejevalnega okvirja vsakegaglyf,VORGpa zagotavlja avtoritativne privzete vrednosti in izjeme izhodišč CFF - Pisave brez navpičnih tabel uporabljajo nastavljiva privzeta napredka 1000 enot in izhodišče 880 enot
- Z
sfVerticalAlternatesceloten GSUB pot, ki ohranja dolžino, uporabivrt2, kadar ga pisava oglašuje, sicer pa se vrne navert, hkrati pa ohrani aktivno izbiro skripte in jezika - Ko pisava nima zamenjave za ločilo, pa preslikuje navpične predstavitvene oblike Unicode, se ti glifi uporabijo za vejice, pike, oklepaje, črtice, tripike in podobna ločila,
ToUnicodepa ohrani izvorno besedilo - Navpični GPOS funkciji
vkrninvpalostaneta na voljo prekShapingFeatures GetVerticalTextAdvancevrne napredek v uporabniškem prostoru, potreben za pozicioniranje naslednjega navpičnega zaporedja
Primer
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;