PDFium Component Docs

ConfigureSystemFontProvider procedure

Unit: PDFium

Syntax

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

Description

Installeert een procesbrede lettertypetoewijzer van de applicatie via de native systeemlettertype-callbackinterface van PDFium

Roep dit aan vóór de eerste LoadLibrary of vóór het openen van enig TPdf-document

Aanroepen terwijl PDFium is geladen verhoogt EPdfError, zodat native lettertypehandles nooit langer kunnen bestaan dan hun providerconfiguratie

Provider contract

IPdfSystemFontProvider.ResolveFont ontvangt de gevraagde face, weight, cursieve status, charset en pitch family

Geef True terug met een facenaam, een volledige TrueType-, TrueType Collection- of OpenType-byte-array, charset en optionele TTC-index

De provider kan op PDFium-workerthreads draaien en moet thread-safe zijn

Excepties worden afgevangen op de native callbackgrens en tellen als mislukte providerresponsen

Policy and caching

TPdfSystemFontPolicy.Default staat native fallback en face-substitutie toe, beperkt elk aangeleverd lettertype tot 64 MiB en bewaart tot 32 aanvraagresultaten in een begrensde LRU-cache

Zet AllowDefaultFallback op False wanneer elke beslissing over ontbrekende lettertypen door de applicatie moet worden genomen

Zet AllowFaceSubstitution op False om een respons af te wijzen waarvan de facenaam afwijkt van de gevraagde naam

Een MaxCacheEntries van nul schakelt aanvraagcaching uit

ConfigureSystemFontCacheGovernor kan bewaarde lettertypebytes bovendien onder een gedeeld budget over caches plaatsen

Statistics

GetSystemFontProviderStatistics geeft een TPdfSystemFontStatistics-momentopname terug met Configured, Installed, MapRequests, CacheHits, ProviderHits, DefaultFallbackHits, RejectedProviderResponses, FailedRequests, FontDataRequests, ActiveHandles, CachedFonts, CachedFontBytes en CacheEvictions

De momentopname kan veilig worden opgevraagd terwijl PDFium aan het renderen is

ClearSystemFontProvider

Roep UnloadLibrary aan vóór ClearSystemFontProvider

Wissen zet de provider, het beleid, de cache en de statistieken terug

Aanroepen terwijl PDFium geladen blijft verhoogt 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