Caché persistente de subconjuntos de fuentes
La caché persistente de subconjuntos de fuentes evita repetir el costoso subconjunto TrueType u OpenType cuando documentos posteriores usan el mismo contenido de fuente y el mismo conjunto de glifos
Configuración
property FontSubsetCacheFolder: AnsiString;
property FontSubsetCacheMaxBytes: Int64;
function GetFontSubsetCacheInfo: THPDFFontSubsetCacheInfo;
procedure ClearFontSubsetCache;
Un FontSubsetCacheFolder vacío deshabilita el almacenamiento en caché en disco sin cambiar la salida de fuentes
FontSubsetCacheMaxBytes se establece de forma predeterminada en 256 MiB y puede reducirse en tiempo de ejecución, lo que activa la expulsión inmediata de menos usados recientemente
Estadísticas
THPDFFontSubsetCacheInfo contiene HitCount, MissCount, WriteCount, EvictionCount, CorruptCount, RejectedCount, WriteFailureCount, CurrentBytes y FileCount
Corrección y recuperación
- Un acierto de caché solo es posible cuando el contenido de la fuente, los glifos usados, el modo de subconjunto y el esquema de caché coinciden todos
- Las entradas de subconjunto compactas conservan los datos de reasignación CID requeridos por los diccionarios de fuentes PDF/A
- Las entradas malformadas o truncadas se rechazan y se eliminan antes de que el subconjunto pueda llegar a un flujo PDF
- Los fallos de caché recurren al subconjunto normal en memoria y nunca impiden la generación de documentos
- El reemplazo atómico impide que los lectores observen una entrada parcialmente escrita
Ejemplo
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;