PDFium Delphi Component Docs

SaveAsReproducible Метод

Компонент: TPdf  ·  Модуль: PDFium
Перезаписывает документ так, что два сохранения одного и того же состояния в памяти дают побайтово идентичный результат

Syntax

function SaveAsReproducible(Stream: TStream; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean;

function SaveAsReproducible(const FileName: string; out Report: TPdfReproducibleReport; AllowSignedDocument: Boolean = False): Boolean;

Description

Порядок объектов уже стабилен (по возрастанию номера объекта), а вычисление /ID из хеша содержимого детерминировано, поэтому оставшаяся недетерминированность - это /CreationDate и /ModDate от реальных часов, которые PDFium записывает в /Info

StripDictionaryEntries удаляет эти ключи меток времени из тела /Info, а перестроенный трейлер опускает исходный /ID (который вычисляется из байтов с метками времени)

Недостижимые объекты также выметаются в точности как SaveAsReachable, а номера объектов и поколения остаются стабильными

Policies and limits

Example

Pdf.SaveAsReproducible('stable.pdf', Report);
WriteLn('stripped ', Report.StrippedTimestampCount, ' timestamps');

See Also

SaveAsReachable, SaveAs, SaveAsDeduplicated