Cache persistente de subconjuntos de fonte
O cache persistente de subconjuntos de fonte evita repetir a criação cara de subconjuntos TrueType ou OpenType quando documentos posteriores usam o mesmo conteúdo de fonte e conjunto de glifos
Configuração
property FontSubsetCacheFolder: AnsiString;
property FontSubsetCacheMaxBytes: Int64;
function GetFontSubsetCacheInfo: THPDFFontSubsetCacheInfo;
procedure ClearFontSubsetCache;
Um FontSubsetCacheFolder vazio desativa o cache em disco sem alterar a saída de fonte
FontSubsetCacheMaxBytes tem como padrão 256 MiB e pode ser reduzido em tempo de execução, o que aciona a remoção imediata do menos usado recentemente
Estatísticas
THPDFFontSubsetCacheInfo contém HitCount, MissCount, WriteCount, EvictionCount, CorruptCount, RejectedCount, WriteFailureCount, CurrentBytes e FileCount
Correção e recuperação
- Uma ocorrência de cache é possível apenas quando o conteúdo da fonte, os glifos usados, o modo de subconjunto e o esquema de cache coincidem
- Entradas de subconjunto compactas retêm os dados de remapeamento CID exigidos pelos dicionários de fonte PDF/A
- Entradas malformadas ou truncadas são rejeitadas e removidas antes que o subconjunto possa chegar a um stream PDF
- Falhas de cache voltam à criação normal de subconjuntos em memória e nunca impedem a geração de documentos
- A substituição atômica impede que leitores observem uma entrada parcialmente gravada
Exemplo
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;