字型後援與直書文字

HotPDF 可依 Unicode 字稿選擇後援字體、回報仍未解析的字碼指標,並透過真正的 CID 直書模式寫入 CJK 文字

文件層級後援鏈

THotPDF.SetFontFallbackChain 會為一個 THPDFFontScript 類別儲存有序的字體清單

THPDFPage.TextOutWithFallback 會將每個 Unicode 純量對所選字體、其字稿鏈與通用鏈進行解析,然後將使用相同字體的相鄰純量作為單一文字段發出

可操作的診斷

AnalyzeUnresolvedGlyphs 會執行唯讀的涵蓋範圍稽核,而 TextOutWithFallback 則會記錄輸出期間遇到的未解析純量

每個 THPDFUnresolvedGlyphInfo 包含純量字碼指標、主要字體、已分類的字稿,以及以分號分隔的後援建議清單

GetUnresolvedGlyphs 傳回目前的文件報告,而 ClearUnresolvedGlyphs 則啟動新的報告區間

THotPDF.ResolveFontForCodePoint 與 THotPDF.AnalyzeUnresolvedGlyphs 的明確樣式多載接受 TFontStyles,preflight 因此能檢查與輸出相同的字面;原本的多載仍檢查標準字面

文字方框、SVG 內嵌文字與已載入文字外觀會在後援版面中保留帶樣式的字型家族,不會把 PDF 內部字型名稱當成系統家族,也不會把每個文字段都切成標準字面

直書 CJK 寫入

THPDFPage.TextOutVertical 會選取目前字體的直書變體,並發出單一 Identity-V 文字段,而非手動定位每個字元

範例

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