Police de secours et texte vertical

HotPDF peut sélectionner des fontes de secours par script Unicode, signaler les points de code qui restent non résolus et écrire du texte CJK via un véritable mode d’écriture CID vertical

Chaînes de secours au niveau du document

THotPDF.SetFontFallbackChain stocke une liste ordonnée de fontes pour une catégorie THPDFFontScript

THPDFPage.TextOutWithFallback résout chaque scalaire Unicode par rapport à la fonte sélectionnée, à sa chaîne de script et à la chaîne commune, puis émet les scalaires adjacents partageant la même fonte comme une seule exécution de texte

Diagnostics exploitables

AnalyzeUnresolvedGlyphs effectue un audit de couverture en lecture seule, tandis que TextOutWithFallback enregistre les scalaires non résolus rencontrés durant la sortie

Chaque THPDFUnresolvedGlyphInfo contient le point de code scalaire, la fonte principale, le script classé et une liste de suggestions de secours séparées par des points-virgules

GetUnresolvedGlyphs renvoie le rapport courant du document et ClearUnresolvedGlyphs entame un nouvel intervalle de rapport

Les surcharges à style explicite de THotPDF.ResolveFontForCodePoint et THotPDF.AnalyzeUnresolvedGlyphs acceptent TFontStyles, si bien que le preflight peut inspecter la même fonte que celle utilisée pour la sortie ; leurs surcharges d’origine continuent d’inspecter les variantes regular

Les zones de texte, le texte SVG embarqué et les apparences de texte chargées conservent les familles de polices stylées à travers la mise en page de secours, au lieu de traiter les noms de polices PDF internes comme des familles système ou de basculer chaque exécution vers une variante regular

Écriture CJK verticale

THPDFPage.TextOutVertical sélectionne la variante verticale de la fonte courante et émet une exécution de texte Identity-V plutôt que de positionner chaque caractère manuellement

Exemple

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 associées