PDFium Delphi Component Docs

ConfigureSystemFontProvider procedimento

Unidade: PDFium

Syntax

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

Description

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

Provider contract

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

Policy and caching

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

Statistics

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

ClearSystemFontProvider

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

Example

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

See Also

ConfigureSystemFontCacheGovernor, FPdfCache, LoadLibrary, UnloadLibrary, AddCidType2Text