PDFium Delphi Component 文件

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 推導也是確定性的,因此剩餘的非確定性來自 PDFium 寫入 /Info 的時鐘時間 /CreationDate 與 /ModDate

StripDictionaryEntries 會從 /Info 本體移除這些時間戳記鍵,重建後的 trailer 也會省略來源 /ID(因為它衍生自含時間戳記的位元組)

無法觸達的物件也會像 SaveAsReachable 一樣被清理,物件編號與世代保持穩定

Policies and limits

Example

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

See Also

SaveAsReachable, SaveAs, SaveAsDeduplicated