Persistente lettertype-subset-cache
De persistente lettertype-subset-cache vermijdt het herhalen van duur TrueType- of OpenType-subsetting wanneer latere documenten dezelfde lettertype-inhoud en glyph-set gebruiken
Configuratie
property FontSubsetCacheFolder: AnsiString;
property FontSubsetCacheMaxBytes: Int64;
function GetFontSubsetCacheInfo: THPDFFontSubsetCacheInfo;
procedure ClearFontSubsetCache;
Een lege FontSubsetCacheFolder schakelt schijf-caching uit zonder de lettertype-uitvoer te wijzigen
FontSubsetCacheMaxBytes is standaard 256 MiB en kan tijdens runtime worden verlaagd, wat onmiddellijke least-recently-used-verwijdering activeert
Statistieken
THPDFFontSubsetCacheInfo bevat HitCount, MissCount, WriteCount, EvictionCount, CorruptCount, RejectedCount, WriteFailureCount, CurrentBytes en FileCount
Correctheid en herstel
- Een cache-hit is alleen mogelijk wanneer de lettertype-inhoud, gebruikte glyphs, subsetmodus en cache-schema allemaal overeenkomen
- Compacte subset-items behouden de CID-remapping-data die vereist is door PDF/A-lettertype-woordenboeken
- Onjuist gevormde of afgekapte items worden verworpen en verwijderd voordat de subset een PDF-stroom kan bereiken
- Cachefouten vallen terug op normale in-memory-subsetting en verhinderen nooit documentgeneratie
- Atomische vervanging voorkomt dat lezers een gedeeltelijk geschreven item waarnemen
Voorbeeld
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;