procedure ConfigureSystemFontProvider(const Provider: IPdfSystemFontProvider; const Policy: TPdfSystemFontPolicy);
Instala um mapeador de fontes do aplicativo de todo o processo por meio da interface nativa de callback de fontes do sistema do PDFium
Chame-o antes do primeiro LoadLibrary ou antes de abrir qualquer documento TPdf
Chamá-lo enquanto o PDFium está carregado dispara EPdfError, de modo que os handles de fonte nativos nunca sobrevivam à configuração de seu provedor
IPdfSystemFontProvider.ResolveFont recebe a face solicitada, o peso, o estado itálico, o charset e a família de pitch
Retorne True com um nome de face, um array de bytes completo TrueType, TrueType Collection ou OpenType, o charset e um índice TTC opcional
O provedor pode executar em threads de trabalho do PDFium e deve ser thread-safe
Exceções são contidas na fronteira do callback nativo e contam como respostas com falha do provedor
TPdfSystemFontPolicy.Default permite fallback nativo e substituição de face, limita cada fonte fornecida a 64 MiB e retém até 32 resultados de solicitação em um cache LRU delimitado
Defina AllowDefaultFallback como False quando toda decisão sobre fonte ausente precisar ser tomada pelo aplicativo
Defina AllowFaceSubstitution como False para rejeitar uma resposta cujo nome de face difira do nome solicitado
Um MaxCacheEntries igual a zero desabilita o cache de solicitações
ConfigureSystemFontCacheGovernor pode, adicionalmente, colocar os bytes de fonte retidos sob um orçamento compartilhado entre caches
GetSystemFontProviderStatistics retorna um snapshot TPdfSystemFontStatistics cobrindo Configured, Installed, MapRequests, CacheHits, ProviderHits, DefaultFallbackHits, RejectedProviderResponses, FailedRequests, FontDataRequests, ActiveHandles, CachedFonts, CachedFontBytes e CacheEvictions
É seguro consultar o snapshot enquanto o PDFium está renderizando
Chame UnloadLibrary antes de ClearSystemFontProvider
A limpeza redefine o provedor, a política, o cache e as estatísticas
Chamá-lo enquanto o PDFium permanece carregado dispara EPdfError
var
Policy: TPdfSystemFontPolicy;
begin
UnloadLibrary;
Policy := TPdfSystemFontPolicy.Default;
Policy.AllowDefaultFallback := False;
ConfigureSystemFontProvider(MyFontProvider, Policy);
LoadLibrary;
end;