PDFium Delphi Component Docs

ConfigureSystemFontProvider procedure

Enhed: PDFium

Syntax

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

Description

Installerer en procesbred applikationsfontmapper via PDFiums native systemfont-callback-interface

Kald den før det første LoadLibrary eller før der åbnes et TPdf-dokument

Kaldes den, mens PDFium er indlæst, udløses EPdfError, så native font-handles aldrig kan overleve deres provider-konfiguration

Provider contract

IPdfSystemFontProvider.ResolveFont modtager den ønskede face, vægt, kursiv-tilstand, charset og pitch-familie

Returnér True sammen med et face-navn, et fuldt TrueType-, TrueType Collection- eller OpenType-byte-array, charset og en valgfri TTC-indeks

Provideren kan køre på PDFium-worker-tråde og skal være trådsikker

Exceptions indfanges ved den native callback-grænseflade og tæller som mislykkede provider-svar

Policy and caching

TPdfSystemFontPolicy.Default tillader native fallback og face-substitution, begrænser hver leveret skrifttype til 64 MiB og gemmer op til 32 forespørgselsresultater i en afgrænset LRU-cache

Sæt AllowDefaultFallback til False, når enhver beslutning om manglende skrifttype skal træffes af applikationen

Sæt AllowFaceSubstitution til False for at afvise et svar, hvis face-navn afviger fra det ønskede navn

En MaxCacheEntries på nul deaktiverer forespørgsels-caching

ConfigureSystemFontCacheGovernor kan desuden placere gemte font-bytes under et delt budget på tværs af caches

Statistics

GetSystemFontProviderStatistics returnerer et TPdfSystemFontStatistics-snapshot, der dækker Configured, Installed, MapRequests, CacheHits, ProviderHits, DefaultFallbackHits, RejectedProviderResponses, FailedRequests, FontDataRequests, ActiveHandles, CachedFonts, CachedFontBytes og CacheEvictions

Snapshotet kan sikkert forespørges, mens PDFium renderer

ClearSystemFontProvider

Kald UnloadLibrary før ClearSystemFontProvider

Nulstilling rydder provideren, politikken, cachen og statistikken

Kaldes den, mens PDFium stadig er indlæst, udløses 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