Cache de sous-ensembles de polices persistant
Le cache persistant de sous-ensembles de polices évite de répéter un découpage coûteux de polices TrueType ou OpenType lorsque des documents ultérieurs utilisent le même contenu de police et le même jeu de glyphes
Configuration
property FontSubsetCacheFolder: AnsiString;
property FontSubsetCacheMaxBytes: Int64;
function GetFontSubsetCacheInfo: THPDFFontSubsetCacheInfo;
procedure ClearFontSubsetCache;
Un FontSubsetCacheFolder vide désactive la mise en cache disque sans modifier la sortie de polices
FontSubsetCacheMaxBytes est par défaut de 256 Mio et peut être réduit à l'exécution, ce qui déclenche une éviction immédiate du moins récemment utilisé
Statistiques
THPDFFontSubsetCacheInfo contient HitCount, MissCount, WriteCount, EvictionCount, CorruptCount, RejectedCount, WriteFailureCount, CurrentBytes et FileCount
Exactitude et récupération
- Un hit de cache n'est possible que lorsque le contenu de police, les glyphes utilisés, le mode de sous-ensemble et le schéma de cache correspondent tous
- Les entrées de sous-ensemble compact conservent les données de remappage CID exigées par les dictionnaires de polices PDF/A
- Les entrées malformées ou tronquées sont rejetées et supprimées avant que le sous-ensemble ne puisse atteindre un flux PDF
- Les échecs de cache reviennent au découpage en mémoire normal et n'empêchent jamais la génération du document
- Le remplacement atomique empêche les lecteurs d'observer une entrée partiellement écrite
Exemple
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;