function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean;
透過 PDFium 原生 CID Type 2 字型載入器載入呼叫端提供的 TrueType 或 TrueType Collection 資料,並把一或多個具定位的文字物件附加到使用中頁面
每個 TPdfCidGlyph 提供來源字形識別碼、Unicode 文字、推進量,以及選用的水平或垂直偏移
循序 CID 會隔離重複的字形執行個體,讓同一個字形識別碼可以帶有不同的 Unicode 叢集對應
pcfemFull 內嵌完整選定字型,pcfemSubsetPreferred 嘗試依字形清單建立子集並在失敗時改用完整字型,pcfemSubsetRequired 在無法產生安全子集時拒絕作業
子集化一律保留字形零,拒絕會讓字型變大的輸出,並在資料送達 PDFium 之前驗證每個要求的原始 GID 仍然存在
Linux 與 macOS 上的原生 Free Pascal 使用可選的 HarfBuzz 子集程式庫,保留字形 ID。程式庫不可用或子集不安全時,透過 SubsetErrorCode 回報;選定的內嵌模式決定是否允許退回完整字型
TTCIndex 選取 TrueType Collection 的成員,單一字型必須保持為零
產生的 ToUnicode CMap 會把每個循序 CID 對應到提供的 UnicodeText,包含多碼位組合字形與增補平面的對應
空對應會成為 U+200B,讓每個 CID 都保持可擷取且可觀察
啟用 VerifyExtraction 時,此方法會重新開啟頁面文字模型,只讀取插入的物件,將結果與 ExpectedText 比對,不符時復原所有插入的物件
TPdfCidFontOptions.Default 選擇 pcfemSubsetPreferred 作為 EmbeddingMode、驗證擷取,並把字型資料限制為 64 MiB、字形執行個體限制為 65,534、MaxUnicodeCharacters 限制為 1,048,576 個已對應的 Unicode 碼位單元
TPdfCidFontReport 記錄字形總數與 UniqueGlyphCount、OriginalFontBytes 與 EmbeddedFontBytes、SubsetAttempted、SubsetApplied、UsedFullFontFallback、SubsetErrorCode、FontEmbedded、預期與擷取文字,以及 ExtractionMatches
字形位置以線性時間產生,共用同一基線的字形會輸出為單一原生文字物件
不同的垂直偏移會使用隔離的文字物件,同時保留邏輯物件順序
驗證與子集化在插入前完成,之後任何原生失敗都會在頁面內容重新產生前移除此次呼叫加入的每個物件