PDFium Delphi Component Docs

ConfigureSystemFontProvider procedura

Jednotka: PDFium

Syntaxe

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

Popis

Instaluje celoprocesového aplikačního mapovače písem přes nativní rozhraní zpětných volání systémových písem PDFium

Zavolejte jej před prvním LoadLibrary nebo před otevřením jakéhokoli dokumentu TPdf

Volání, když je PDFium načteno, vyvolá EPdfError, aby nativní handles písem nikdy nepřežily svou konfiguraci poskytovatele

Kontrakt poskytovatele

IPdfSystemFontProvider.ResolveFont obdrží požadovaný řez, tloušťku, stav kurzívy, znakovou sadu a rodinu pitch

Vraťte True spolu s názvem řezu, kompletním bajtovým polem TrueType, TrueType Collection nebo OpenType, znakovou sadou a volitelným indexem TTC

Poskytovatel může běžet na pracovních vláknech PDFium a musí být thread-safe

Výjimky jsou zachyceny na hranici nativního zpětného volání a počítají se jako neúspěšné odpovědi poskytovatele

Politika a ukládání do mezipaměti

TPdfSystemFontPolicy.Default povoluje nativní fallback a substituci řezů, omezuje každé dodané písmo na 64 MiB a uchovává až 32 výsledků požadavků v ohraničené LRU mezipaměti

Nastavte AllowDefaultFallback na False, když musí každé rozhodnutí o chybějícím písmu učinit aplikace

Nastavte AllowFaceSubstitution na False pro odmítnutí odpovědi, jejíž název řezu se liší od požadovaného názvu

Nulové MaxCacheEntries zakáže ukládání požadavků do mezipaměti

ConfigureSystemFontCacheGovernor může navíc podřídit uchované bajty písem sdílenému rozpočtu napříč mezipaměťmi

Statistiky

GetSystemFontProviderStatistics vrací snímek TPdfSystemFontStatistics pokrývající Configured, Installed, MapRequests, CacheHits, ProviderHits, DefaultFallbackHits, RejectedProviderResponses, FailedRequests, FontDataRequests, ActiveHandles, CachedFonts, CachedFontBytes a CacheEvictions

Snímek je bezpečné dotazovat, zatímco PDFium vykresluje

ClearSystemFontProvider

Zavolejte UnloadLibrary před ClearSystemFontProvider

Vymazání resetuje poskytovatele, politiku, mezipaměť a statistiky

Volání, kdy PDFium zůstává načteno, vyvolá EPdfError

Příklad

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

Viz také

ConfigureSystemFontCacheGovernor, FPdfCache, LoadLibrary, UnloadLibrary, AddCidType2Text