Fallback de fonturi și text vertical

HotPDF poate selecta fețe de fallback după scriptul Unicode, poate raporta punctele de cod care rămân nerezolvate și poate scrie text CJK printr-un mod real de scriere CID vertical

Lanțuri de fallback la nivel de document

THotPDF.SetFontFallbackChain stochează o listă ordonată de fețe pentru o categorie THPDFFontScript

THPDFPage.TextOutWithFallback rezolvă fiecare scalar Unicode în raport cu fața selectată, lanțul său de script și lanțul comun, apoi emite scalar-adiacente cu aceeași față ca o singură execuție de text

Diagnosticare acționabilă

AnalyzeUnresolvedGlyphs efectuează un audit de acoperire în mod doar-citire, în timp ce TextOutWithFallback înregistrează scalar-ii nerezolvați întâlniți în timpul generării

Fiecare THPDFUnresolvedGlyphInfo include punctul de cod scalar, fața principală, scriptul clasificat și o listă de sugestii de fallback separatate prin punct și virgulă

GetUnresolvedGlyphs returnează raportul curent al documentului, iar ClearUnresolvedGlyphs pornește un nou interval de raportare

Overload-urile cu stil explicit ale THotPDF.ResolveFontForCodePoint și THotPDF.AnalyzeUnresolvedGlyphs acceptă TFontStyles, astfel încât preflight-ul poate inspecta aceeași față folosită la output; overload-urile lor originale continuă să inspecteze fețele regular

Casetele de text, textul SVG încorporat și aspectele de text încărcate păstrează familiile de fonturi cu stil de-a lungul așezării fallback, în loc să trateze numele interne de fonturi PDF ca familii de sistem sau să treacă fiecare execuție pe o față regular

Scriere CJK verticală

THPDFPage.TextOutVertical selectează varianta verticală a feței curente și emite o singură execuție de text Identity-V în loc să poziționeze fiecare caracter manual

Exemplu

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-uri corelate