Постійний кеш підмножин шрифтів
Постійний кеш підмножин шрифтів уникає повторного дорогого створення підмножин TrueType або OpenType, коли пізніші документи використовують той самий вміст шрифту та набір гліфів
Конфігурування
property FontSubsetCacheFolder: AnsiString;
property FontSubsetCacheMaxBytes: Int64;
function GetFontSubsetCacheInfo: THPDFFontSubsetCacheInfo;
procedure ClearFontSubsetCache;
Порожній FontSubsetCacheFolder вимикає кешування на диску без зміни виводу шрифтів
FontSubsetCacheMaxBytes за замовчуванням становить 256 МіБ і може бути зменшений під час виконання, що викликає негайне витіснення найменш нещодавно використовуваних записів
Статистика
THPDFFontSubsetCacheInfo містить HitCount, MissCount, WriteCount, EvictionCount, CorruptCount, RejectedCount, WriteFailureCount, CurrentBytes та FileCount
Коректність та відновлення
- Попадання в кеш можливе лише тоді, коли вміст шрифту, використані гліфи, режим підмножини та схема кешу збігаються водночас
- Компактні записи підмножин зберігають дані перепризначення CID, необхідні для словників шрифтів PDF/A
- Пошкоджені або обрізані записи відхиляються та видаляються, перш ніж підмножина може потрапити в потік PDF
- Помилки кешу відступають до звичайного створення підмножин у пам'яті та ніколи не запобігають створенню документа
- Атомарна заміна запобігає спостереженню читачами частково записаного запису
Приклад
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;