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 件の要求結果を保持します
欠落フォントへの判断をすべてアプリケーションが行う場合は、AllowDefaultFallback を False にします
応答のフェイス名が要求された名前と異なる場合に拒否するには、AllowFaceSubstitution を False にします
MaxCacheEntries がゼロの場合、要求キャッシュは無効になります
ConfigureSystemFontCacheGovernor を使うと、保持されたフォントバイトを追加でキャッシュ横断の共有予算の下に置けます
GetSystemFontProviderStatistics は、Configured、Installed、MapRequests、CacheHits、ProviderHits、DefaultFallbackHits、RejectedProviderResponses、FailedRequests、FontDataRequests、ActiveHandles、CachedFonts、CachedFontBytes、CacheEvictions を含む TPdfSystemFontStatistics スナップショットを返します
スナップショットは PDFium のレンダリング中でも安全に照会できます
ClearSystemFontProvider の前に UnloadLibrary を呼び出します
クリアするとプロバイダー、ポリシー、キャッシュ、統計がリセットされます
PDFium が読み込み済みのまま呼び出すと EPdfError が発生します
var
Policy: TPdfSystemFontPolicy;
begin
UnloadLibrary;
Policy := TPdfSystemFontPolicy.Default;
Policy.AllowDefaultFallback := False;
ConfigureSystemFontProvider(MyFontProvider, Policy);
LoadLibrary;
end;