THotPDF.ScrubLoadedRedactionRemnants

在已載入文件塗銷之後,永久移除殘留的私人資料與不可達物件

Delphi 語法

function ScrubLoadedRedactionRemnants(
  out Report: THPDFSanitiseReport): Boolean;

說明

此方法對完整的已載入物件圖套用 spRedactionCleanup 淨化設定檔

它會移除 Redact 與檔案附件註解、trailer 的文件資訊字典、Catalog 或頁面 XMP 中繼資料、私有的 /PieceInfo 中繼資料、內嵌檔名稱樹、關聯檔案、portfolio,以及它們分離出的承載串流

接著進行一次可處理迴圈的可達性掃描,刪除所有再也無法從 Catalog 抵達的間接物件,包括未使用的字型、字型程式、影像、Form XObject、中繼資料串流、註解與承載物件;仍存活的物件編號則以線性時間壓實

此方法會停用增量儲存,並強制下一次已載入文件儲存執行完整改寫,被移除的位元組因此不可能殘留在較早的修訂版本中

無關的動作、頁面內容、導覽、表單與註解都會保留;若連活躍內容也要一併移除,請使用 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 與 已載入文件淨化