procedure ConfigureSystemFontProvider(const Provider: IPdfSystemFontProvider; const Policy: TPdfSystemFontPolicy);
透過 PDFium 的原生系統字型回呼介面安裝處理序級的應用程式字型對應器
請在第一次 LoadLibrary 之前,或在開啟任何 TPdf 文件之前呼叫
在 PDFium 已載入時呼叫會引發 EPdfError,以確保原生字型控制代碼的存續時間絕不超過其提供者設定
IPdfSystemFontProvider.ResolveFont 會收到要求的字體名稱、字重、斜體狀態、字元集與 pitch 系列
傳回 True 並附上字體名稱、完整的 TrueType、TrueType Collection 或 OpenType 位元組陣列、字元集,以及選用的 TTC 索引
提供者可能在 PDFium 工作執行緒上執行,必須是執行緒安全
例外會在原生回呼邊界被攔截,並視為提供者回應失敗
TPdfSystemFontPolicy.Default 允許原生遞補與字體替換,將每個提供的字型限制在 64 MiB 以內,並在受額度限制的 LRU 快取中保留最多 32 筆要求結果
當每個缺字判斷都必須由應用程式自行決定時,將 AllowDefaultFallback 設為 False
將 AllowFaceSubstitution 設為 False,以拒絕字體名稱與要求名稱不同的回應
MaxCacheEntries 為零時會停用要求快取
ConfigureSystemFontCacheGovernor 還可將保留的字型位元組納入跨快取的共用額度
GetSystemFontProviderStatistics 會傳回 TPdfSystemFontStatistics 快照,涵蓋 Configured、Installed、MapRequests、CacheHits、ProviderHits、DefaultFallbackHits、RejectedProviderResponses、FailedRequests、FontDataRequests、ActiveHandles、CachedFonts、CachedFontBytes 與 CacheEvictions
在 PDFium 算繪期間查詢此快照是安全的
請在 ClearSystemFontProvider 之前呼叫 UnloadLibrary
清除會重設提供者、原則、快取與統計資訊
在 PDFium 仍處於載入狀態時呼叫會引發 EPdfError
var
Policy: TPdfSystemFontPolicy;
begin
UnloadLibrary;
Policy := TPdfSystemFontPolicy.Default;
Policy.AllowDefaultFallback := False;
ConfigureSystemFontProvider(MyFontProvider, Policy);
LoadLibrary;
end;