Persistent Font-Subset Cache
Cache-ul persistent de subseturi de fonturi evită repetarea subsetării costisitoare TrueType sau OpenType atunci când documentele ulterioare folosesc același conținut de font și același set de glife
Configuration
property FontSubsetCacheFolder: AnsiString;
property FontSubsetCacheMaxBytes: Int64;
function GetFontSubsetCacheInfo: THPDFFontSubsetCacheInfo;
procedure ClearFontSubsetCache;
An empty FontSubsetCacheFolder disables disk caching without changing font output
FontSubsetCacheMaxBytes are implicit 256 MiB și poate fi redus la runtime, ceea ce declanșează imediat evacuarea LRU (least-recently-used)
Statistics
THPDFFontSubsetCacheInfo contains HitCount, MissCount, WriteCount, EvictionCount, CorruptCount, RejectedCount, WriteFailureCount, CurrentBytes, and FileCount
Correctness and recovery
- O lovitură de cache este posibilă doar când conținutul fontului, glifele folosite, modul de subset și schema de cache se potrivesc toate
- Intrările compacte de subset păstrează datele de remapare CID cerute de dicționarele de fonturi PDF/A
- Intrările malformate sau trunchiate sunt respinse și eliminate înainte ca subsetul să poată ajunge într-un flux PDF
- Eșecurile de cache revin la subsetarea normală în memorie și nu împiedică niciodată generarea documentului
- Înlocuirea atomică împiedică cititorii să observe o intrare scrisă parțial
Exemplu
var
Info: THPDFFontSubsetCacheInfo;
begin
PDF.EnableFontSubsetting := True;
PDF.FontSubsetCacheFolder := 'C:\ProgramData\MyApp\HotPDF\FontSubsets';
PDF.FontSubsetCacheMaxBytes := 256 * 1024 * 1024;
{ create documents that use embedded TrueType or OpenType fonts }
Info := PDF.GetFontSubsetCacheInfo;
end;