THotPDF.ScrubLoadedRedactionRemnants
Окончательно удаляет остатки частных данных и недостижимые объекты после redaction загруженного документа
Синтаксис Delphi
function ScrubLoadedRedactionRemnants( out Report: THPDFSanitiseReport): Boolean;
Описание
Метод применяет профиль санитаризации spRedactionCleanup ко всему загруженному графу объектов
Он удаляет аннотации Redact и вложения файлов, словарь сведений о документе из trailer, XMP-метаданные Catalog и страниц, частные метаданные /PieceInfo, деревья имён встроенных файлов, сопутствующие файлы, portfolios и их отсоединённые потоки полезных нагрузок
Затем защищённый от циклов проход по достижимости удаляет каждый косвенный объект, который больше не достижим из Catalog, включая неиспользуемые шрифты, шрифтовые программы, изображения, Form XObjects, потоки метаданных, аннотации и объекты полезных нагрузок. Номера живых объектов уплотняются за линейное время
Метод отключает инкрементальное сохранение и заставляет следующее сохранение загруженного документа выполнить полную перезапись, так что удалённые байты не смогут остаться в более ранней ревизии
Не затронутые очисткой действия, содержимое страниц, навигация, формы и аннотации сохраняются. Если нужно удалить и активное содержимое, используйте SanitiseLoadedDocument
Отчёт
Поля MetadataEntriesRemoved, RedactAnnotationsRemoved, EmbeddedFilesRemoved, PayloadStreamsRemoved, UnreachableObjectsRemoved и PriorRevisionBytesDiscarded дают телеметрию очистки
Пример
var
Report: THPDFSanitiseReport;
begin
PDF.LoadFromFile('redacted-source.pdf');
PDF.ApplyLoadedRedactions;
if not PDF.ScrubLoadedRedactionRemnants(Report) then
raise Exception.Create('Redaction cleanup was rejected');
PDF.SaveLoadedDocument('redacted-final.pdf');
end;
См. также ApplyLoadedRedactions и Санитаризация загруженного документа