PDFium Delphi Component 文件

ConfigureSystemFontProvider 程序

單元: PDFium

Syntax

procedure ConfigureSystemFontProvider(const Provider: IPdfSystemFontProvider; const Policy: TPdfSystemFontPolicy);

Description

透過 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

請在 ClearSystemFontProvider 之前呼叫 UnloadLibrary

清除會重設提供者、原則、快取與統計資訊

在 PDFium 仍處於載入狀態時呼叫會引發 EPdfError

Example

var
  Policy: TPdfSystemFontPolicy;
begin
  UnloadLibrary;
  Policy := TPdfSystemFontPolicy.Default;
  Policy.AllowDefaultFallback := False;
  ConfigureSystemFontProvider(MyFontProvider, Policy);
  LoadLibrary;
end;

See Also

ConfigureSystemFontCacheGovernor, FPdfCache, LoadLibrary, UnloadLibrary, AddCidType2Text