Záloha písem a vertikální text

HotPDF umí vybrat záložní řezy podle Unicode skriptu, nahlásit kódové body, které zůstaly nevyřešené, a zapisovat CJK text skutečným vertikálním CID režimem sazby

Záložní řetězce na úrovni dokumentu

THotPDF.SetFontFallbackChain ukládá seřazený seznam řezů pro jednu kategorii THPDFFontScript

THPDFPage.TextOutWithFallback vyřeší každý Unicode skalár proti vybranému řezu, jeho řetězci skriptu a společnému řetězci a poté emituje sousední skaláry se stejným řezem jako jeden běh textu

Akční diagnostika

AnalyzeUnresolvedGlyphs provede audit pokrytí pouze pro čtení, zatímco TextOutWithFallback zaznamenává nevyřešené skaláry nalezené během výstupu

Každý THPDFUnresolvedGlyphInfo obsahuje kódový bod skaláru, primární řez, klasifikovaný skript a středníkem oddělený seznam návrhů zálohy

GetUnresolvedGlyphs vrací aktuální report dokumentu a ClearUnresolvedGlyphs spouští nový interval reportování

Explicitní přetížení se stylem u THotPDF.ResolveFontForCodePoint a THotPDF.AnalyzeUnresolvedGlyphs přijímají TFontStyles, takže preflight může prohlédnout tentýž řez, který jde do výstupu; původní přetížení dál kontrolují řezy regular

Textová pole, vložený text SVG a vzhledy načteného textu si zachovají stylizované rodiny fontů i skrz záložní sazbu, místo aby brala interní jména fontů PDF jako systémové rodiny nebo přehazela všechny běhy na řez regular

Vertikální CJK sazba

THPDFPage.TextOutVertical vybere vertikální variantu aktuálního řezu a emituje jeden běh textu Identity-V namísto ručního pozicování každého znaku

Příklad

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;

Související API