PDFium Delphi Component Docs

Procedura ConfigureSystemFontProvider

Unit: PDFium

Syntax

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

Description

Instalează un mapator de fonturi al aplicației la nivel de proces, prin interfața nativă de callback pentru fonturi de sistem a PDFium

Apelați-o înainte de primul LoadLibrary sau înainte de a deschide orice document TPdf

Apelarea în timp ce PDFium este încărcat ridică EPdfError, astfel încât un handle nativ de font nu poate supraviețui niciodată configurației furnizorului său

Provider contract

IPdfSystemFontProvider.ResolveFont primește fața cerută, groșimea, starea de italic, setul de caractere și familia de pitch

Returnați True împreună cu un nume de față, un array de octeți TrueType complet, TrueType Collection sau OpenType, setul de caractere și indexul TTC opțional

Furnizorul poate rula pe firele de execuție de lucru PDFium și trebuie să fie thread-safe

Excepțiile sunt izolate la granița callback-ului nativ și sunt contorizate ca răspunsuri eșuate ale furnizorului

Policy and caching

TPdfSystemFontPolicy.Default permite rezerva nativă și substituirea fețelor, limitează fiecare font furnizat la 64 MiB și păstrează până la 32 de rezultate de cereri într-un cache LRU mărginit

Setați AllowDefaultFallback pe False atunci când fiecare decizie privind un font lipsă trebuie luată de aplicație

Setați AllowFaceSubstitution pe False pentru a respinge un răspuns al cărui nume de față diferă de numele cerut

O valoare zero pentru MaxCacheEntries dezactivează stocarea cererilor în cache

ConfigureSystemFontCacheGovernor poate plasa, în plus, octeții de fonturi reținuți sub un buget partajat comun mai multor cache-uri

Statistics

GetSystemFontProviderStatistics returnează un instantaneu TPdfSystemFontStatistics care acoperă Configured, Installed, MapRequests, CacheHits, ProviderHits, DefaultFallbackHits, RejectedProviderResponses, FailedRequests, FontDataRequests, ActiveHandles, CachedFonts, CachedFontBytes și CacheEvictions

Instantaneul poate fi interogat în siguranță în timp ce PDFium randează

ClearSystemFontProvider

Apelați UnloadLibrary înainte de ClearSystemFontProvider

Resetarea curăță furnizorul, politica, cache-ul și statisticile

Apelarea în timp ce PDFium rămâne încărcat ridică 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