Font Fallback and Vertical Text

HotPDF can select fallback faces by Unicode script, report code points that remain unresolved, and write CJK text through a real vertical CID writing mode

Document-level fallback chains

THotPDF.SetFontFallbackChain stores an ordered face list for one THPDFFontScript category

THPDFPage.TextOutWithFallback resolves each Unicode scalar against the selected face, its script chain, and the common chain, then emits adjacent scalars with the same face as one text run

Actionable diagnostics

AnalyzeUnresolvedGlyphs performs a read-only coverage audit, whilst TextOutWithFallback records unresolved scalars encountered during output

Each THPDFUnresolvedGlyphInfo includes the scalar code point, primary face, classified script, and a semicolon-separated fallback suggestion list

GetUnresolvedGlyphs returns the current document report and ClearUnresolvedGlyphs starts a new reporting interval

The explicit-style overloads of THotPDF.ResolveFontForCodePoint and THotPDF.AnalyzeUnresolvedGlyphs accept TFontStyles so preflight can inspect the same face used for output; their original overloads continue to inspect regular faces

Text boxes, SVG embedded text, and loaded text appearances retain styled font families through fallback layout, rather than treating PDF internal font names as system families or switching every run to a regular face

Vertical CJK writing

THPDFPage.TextOutVertical selects the current face's vertical variant and emits one Identity-V text run rather than positioning every character manually

Example

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;

Related APIs