可變與彩色 OpenType 字型
HotPDF 可以在一般字型安裝、子集化與持久性快取之前檢查 fvar 軸與命名實例、驗證選定座標,並產生靜態實例
可變字型工作流程
PDF.InspectVariableFont(FontPath, Axes, Instances);
PDF.SetVariableFontAxis('wght', 650);
PDF.RegisterUnicodeTTF(FontPath);
CFF2 OpenType 字型會在內部於預設或選定座標具現化,包括 fvar、avar 1.0 與 2.0 對應、每個字型字典的 vsindex 狀態、blend 求值、遞迴的本地與全域子程式,以及 HVAR、VVAR 與 MVAR 度量增量
採用 glyf 輪廓的 TrueType 可變字型會在內部為非預設座標具現化。此管線會求值共享與私有的 gvar 組件、套用 IUP 內插、更新簡單輪廓與複合位移、解析水平與垂直假想點度量、烘焙 MVAR、重建精簡的字形資料與 loca,並從校驗和正確的靜態 sfnt 移除變異表
OnVariableFontInstance 對 CFF2 與 TrueType 可變字型是可選的。它可透過傳回沒有 fvar 表的有效靜態 sfnt 來取代非預設的內部實例
解析出的座標仍可透過 GetRegisteredVariableFontAxes 取得,並成為已安裝與已快取字型內容的一部分
低階具現化、子集化與安全性
HPDFIsCFF2Font、HPDFInstantiateCFF2Font、HPDFSubsetCFF2Font、HPDFIsTrueTypeVariableFont 與 HPDFInstantiateTrueTypeVariableFont 為已經自行管理字型容器的呼叫端公開位元組陣列工作流程
靜態輸出在重建 sfnt 表與校驗和時保留字形 ID 與提示程式。CFF2 路徑也保留每個字型字典的私有資料與字型矩陣
格式錯誤的位移、無效的變異結構、過度的子程式深度、運算限制與擴充的 CharString 限制都會以失敗關閉的方式結束,而非傳回部分具現化的字型
彩色字形工作流程
GetRegisteredColorGlyphInfo 會偵測所登錄字型的 COLR 與 CPAL 圖層、SVG 字形文件、CBDT/CBLC 打樣與 sbix 打樣
DrawRegisteredColorGlyph 會以原生方式繪製 COLR v0 圖層、有界的 COLR v1 描繪圖形、受限的安全 SVG 文件、CBDT PNG 影像與 sbix PNG 或 JPEG 影像
COLR v1 支援圖層化字形裁切、純色與多停靠點線性填滿、放射狀填滿、掃掠填滿、仿射變換、可重用彩色字形、來源與目標順序,以及 PDF 混色合成
原生 SVG 設定檔支援路徑、矩形、圓形、橢圓、線條、多邊形、多段線、繼承的純色填滿與筆劃、仿射變換,以及 gzip 壓縮的 SVG 文件
THPDFColorGlyphRasterizeEvent 仍是不支援的 SVG 功能、不支援的 Porter-Duff 模式、不透明度、漸層與應用程式特定點陣輸出的遞補方案
THPDFOpenTypeColorGlyphInfo.COLRv1Paints 透過 THPDFCOLRv1Paint、THPDFCOLRv1ColorStop 與 THPDFCOLRv1Transform 這幾個 record 公開已驗證的扁平 DAG,不必重新解析字型位元組即可檢視
呼叫端選擇調色盤與目標像素大小,使打樣選擇與點陣輸出保持一致