PDFium Delphi Component Docs

ConfigureSystemFontProvider プロシージャ

ユニット: PDFium

構文

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

説明

PDFium のネイティブシステムフォントコールバックインターフェイスを通じて、プロセス全体のアプリケーションフォントマッパーを組み込みます

最初の LoadLibrary の前、または任意の TPdf ドキュメントを開く前に呼び出します

PDFium の読み込み中に呼び出すと EPdfError が発生します。ネイティブのフォントハンドルがプロバイダー構成より長く生存しないようにするためです

プロバイダー契約

IPdfSystemFontProvider.ResolveFont は、要求されたフェイス名、ウェイト、イタリック状態、文字セット、ピッチファミリーを受け取ります

フェイス名、完全な TrueType、TrueType Collection、OpenType のいずれかのバイト配列、文字セット、およびオプションの TTC インデックスとともに True を返します

プロバイダーは PDFium のワーカースレッド上で実行されることがあるため、スレッドセーフでなければなりません

例外はネイティブコールバック境界で受け止められ、失敗したプロバイダー応答として数えられます

ポリシーとキャッシュ

TPdfSystemFontPolicy.Default はネイティブフォールバックとフェイス置換を許可し、供給された各フォントを 64 MiB に制限し、上限付き LRU キャッシュに最大 32 件の要求結果を保持します

欠落フォントへの判断をすべてアプリケーションが行う場合は、AllowDefaultFallbackFalse にします

応答のフェイス名が要求された名前と異なる場合に拒否するには、AllowFaceSubstitutionFalse にします

MaxCacheEntries がゼロの場合、要求キャッシュは無効になります

ConfigureSystemFontCacheGovernor を使うと、保持されたフォントバイトを追加でキャッシュ横断の共有予算の下に置けます

統計

GetSystemFontProviderStatistics は、ConfiguredInstalledMapRequestsCacheHitsProviderHitsDefaultFallbackHitsRejectedProviderResponsesFailedRequestsFontDataRequestsActiveHandlesCachedFontsCachedFontBytesCacheEvictions を含む TPdfSystemFontStatistics スナップショットを返します

スナップショットは PDFium のレンダリング中でも安全に照会できます

ClearSystemFontProvider

ClearSystemFontProvider の前に UnloadLibrary を呼び出します

クリアするとプロバイダー、ポリシー、キャッシュ、統計がリセットされます

PDFium が読み込み済みのまま呼び出すと EPdfError が発生します

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

関連項目

ConfigureSystemFontCacheGovernor, FPdfCache, LoadLibrary, UnloadLibrary, AddCidType2Text