Дедупликация импортированных ресурсов в THotPDF
Переиспользует эквивалентные immutable-ресурсы, когда страницы копируются из одного или нескольких документов-источников в один и тот же документ назначения
Delphi syntax
function GetImportedResourceDedupStatistics( out Statistics: THPDFImportedResourceDedupStatistics): boolean; procedure ClearImportedResourceDedupCache;
Описание
CopyPageFromDocument и связанные пути копирования графа создают канонические SHA-256 fingerprint для indirect ресурсов: image, Form XObject, Pattern, embedded font program, Font и ExtGState. Ключи dictionary упорядочиваются перед хешированием, indirect зависимости разрешаются, а содержимое stream хешируется без изменения его текущей позиции
Cache принадлежит документу назначения и остаётся доступным между копированиями страниц и между разными экземплярами документов-источников. Он автоматически очищается при начале нового документа или загруженного parse graph, а также при commit или rollback graph transaction
GetImportedResourceDedupStatistics возвращает число закешированных ресурсов, а также попадания и промахи cache. ClearImportedResourceDedupCache очищает и записи, и счётчики, не трогая объекты, уже присутствующие в документе назначения
Разделяются только indirect ресурсы. Словари страниц, annotation, content stream и произвольные изменяемые dictionary по-прежнему получают независимые копии
См. также CopyPageFromDocument