Font Fallback and Vertical Text
HotPDF može da bira rezervne pisma po Unicode skripti, prijavljuje kodne tačke koje ostaju nerešene i piše CJK tekst kroz pravi vertikalni CID režim pisanja
Lanci rezervnih fontova na nivou dokumenta
THotPDF.SetFontFallbackChain čuva uređeni spisak pisama za jednu kategoriju THPDFFontScript kategoriju
THPDFPage.TextOutWithFallback rešava svaki Unicode skalarnu vrednost prema izabranom pismu, njegovom lancu skripte i zajedničkom lancu, a zatim emituje susedne skalare sa istim pismom kao jedan tekstualni niz
- Lanci rezervnih fontova su podešavanja dokumenta i ostaju dostupni na svim stranicama
- Duplikati i prazna imena pisama se uklanjaju dok se čuva redosled pozivaoca
- Proba instaliranih pisama odbacuje tiho GDI zamenjivanje pre nego što prihvati pokrivenost
- Skalari dopunske ravni se dekodiraju iz UTF-16 surogat parova pre klasifikacije
- Svaki rezervni niz koristi postojeći ugrađeni Type0 font, podskup,
ToUnicodei deljenu putanju fonta između stranica - Provere rasporeda rezerve pregledaju instalirane porodice fontova sa traženim bold i italic varijantama, čuvaju sva podešavanja stila fonta, charseta, veličine i smera pisanja kroz nizove i nakon toga vraćaju font pozivaoca
Dijagnostika na koju se može reagovati
AnalyzeUnresolvedGlyphs izvršava reviziju pokrivenosti samo za čitanje, dok TextOutWithFallback beleži nerešene skalare nastale tokom ispisa
Svaki THPDFUnresolvedGlyphInfo sadrži kodnu tačku skalara, primarno pismo, klasifikovanu skriptu i spisak predloga rezerve razdvojen tačka-zarezom
GetUnresolvedGlyphs vraća trenutni izveštaj dokumenta, a ClearUnresolvedGlyphs započinje novi interval izveštavanja
Overload-i sa eksplicitnim stilom THotPDF.ResolveFontForCodePoint i THotPDF.AnalyzeUnresolvedGlyphs prihvataju TFontStyles tako da preflight može da pregleda isto pismo koje se koristi za izlaz; njihovi originalni overload-i i dalje pregledaju regular varijante
Tekstualni okviri, SVG ugrađeni tekst i izgledi učitanog teksta zadržavaju stilizovane porodice fontova kroz raspored rezerve, umesto da PDF interna imena fontova tretiraju kao sistemske porodice ili da svaki niz prebacuju na regular varijantu
Vertikalno CJK pisanje
THPDFPage.TextOutVertical bira vertikalnu varijantu trenutnog pisma i emituje jedan Identity-V tekstualni niz umesto ručnog pozicioniranja svakog znaka
- CID izvedeni font sadrži
/DW2podrazumevane vrednosti i/W2unose - OpenType
vheaivmtxdaju vertikalna napredovanja, aglyfdaje vertikalna ishodištaVORGdaje autoritativne podrazumevane CFF vrednosti porekla i izuzetke - Fontovi bez vertikalnih tablica koriste podesive podrazumevane vrednosti napredovanja od 1000 jedinica i ishodišta od 880 jedinica
- Sa
sfVerticalAlternates, kompletan GSUB niz koji čuva dužinu koristivrt2kada je oglašen, a inače se vraća navert, čuvajući izabrani skript i jezik - Kada font izostavi zamenu interpunkcije ali mapira Unicode vertikalne presentation forme, zapete, tačke, zagrade, crtice, tri tačke i srodna interpunkcija koriste te glifove dok
ToUnicodečuva izvorni tekst - Postojeće
vkrnivpali vertikalne GPOS mogućnosti ostaju dostupne prekoShapingFeatures GetVerticalTextAdvancevraća napredovanje u korisničkom prostoru potrebno za pozicioniranje sledećeg vertikalnog niza
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;