Font fallback e testo verticale

HotPDF può selezionare i font di fallback in base allo script Unicode, segnalare i code point che rimangono non risolti e scrivere testo CJK attraverso una reale modalità di scrittura CID verticale

Catene di fallback a livello di documento

THotPDF.SetFontFallbackChain memorizza un elenco ordinato di font per una categoria THPDFFontScript

THPDFPage.TextOutWithFallback risolve ogni scalare Unicode rispetto al font selezionato, alla sua catena di script e alla catena comune, quindi emette gli scalari adiacenti con lo stesso font come un'unica sequenza di testo

Diagnostica utilizzabile

AnalyzeUnresolvedGlyphs esegue un controllo di copertura in sola lettura, mentre TextOutWithFallback registra gli scalari non risolti incontrati durante l'output

Ogni THPDFUnresolvedGlyphInfo include lo scalare del code point, il font principale, lo script classificato e un elenco di suggerimenti di fallback separato da punto e virgola

GetUnresolvedGlyphs restituisce il rapporto corrente del documento e ClearUnresolvedGlyphs avvia un nuovo intervallo di reportistica

Gli overload con stile esplicito di THotPDF.ResolveFontForCodePoint e THotPDF.AnalyzeUnresolvedGlyphs accettano TFontStyles, così la verifica preliminare può ispezionare la stessa variante usata per l'output; gli overload originali continuano a ispezionare le varianti regular

I text box, il testo SVG incorporato e le appearance di testo caricate conservano le famiglie di font con stile attraverso il layout di fallback, invece di trattare i nomi dei font interni del PDF come famiglie di sistema o passare ogni sequenza a una variante regular

Scrittura CJK verticale

THPDFPage.TextOutVertical seleziona la variante verticale del font corrente ed emette un'unica sequenza di testo Identity-V anziché posizionare manualmente ogni carattere

Esempio

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;

API correlate