PDFium Delphi Component Docs

SaveAsSanitised メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
有界のカタログとトレーラー更新でクリーンな単一リビジョンコピーを書き出し、到達不能オブジェクトを刈り込んで、孤立した JavaScript、アクション、添付、メタデータ本体をファイル本体から取り除きます

構文

function SaveAsSanitised(Stream: TStream;
  const Options: TPdfSanitiseOptions;
  out Report: TPdfSanitiseReport): Boolean; overload;

function SaveAsSanitised(const FileName: string;
  const Options: TPdfSanitiseOptions;
  out Report: TPdfSanitiseReport): Boolean; overload;

説明

SaveAsSanitised は、ドキュメントカタログからアクティブコンテンツのベクトルを取り除き、その後で到達可能性の刈り込みを任意に実行して孤立オブジェクトをファイル本体から排除する、無害化された単一リビジョンの PDF コピーを生成します

2 段階のパイプラインは、まず StripDictionaryEntries によってカタログエントリ (/OpenAction、/AA、/Names、/AF、/AcroForm、/Metadata) をインクリメンタル更新として剥ぎ取り、次に PruneUnreachablePdfStream を実行してファイルを 1 つのクリーンなクラシックリビジョンとして書き換えます

カタログとトレーラーの更新は、保存済み PDF 全体を 1 つのバイト配列として具体化する代わりに、スパースな xref ルックアップ、最大 1 MiB のパーサーウィンドウ、通常の xref パス上の 64 KiB 範囲コピーを使用します

刈り込みが有効な場合、中間ワークスペースは SaveMemoryLimit と SaveTemporaryDirectory に従う TPdfRandomAccessStore です。そのピークメモリとスピル状態は LastSaveLargestMemoryBuffer と LastSaveSpillCount に含まれます

すべてのストリップフラグは独立しています。TPdfSanitiseOptions.Default は完全なセキュリティプロファイル (StripOpenAction、StripCatalogActions、StripNames、StripAssociatedFiles、さらに RemoveUnreachable 刈り込み) を有効にします。StripAcroForm と StripMetadata は、呼び出し側が保持したいフォームフィールドとメタデータを除去するため、既定では False です

RemoveUnreachable=True の場合、出力は常にインクリメンタル履歴のない単一リビジョンになります

パラメーター

備考

例

var
  Options: TPdfSanitiseOptions;
  Report: TPdfSanitiseReport;
begin
  Pdf1.FileName := 'C:\Untrusted.pdf';
  Pdf1.Active := True;
  Options := TPdfSanitiseOptions.Default;
  Pdf1.SaveAsSanitised('C:\Sanitised.pdf', Options, Report);
end;

関連項目

SaveAsReachable, SaveAs, AuditActiveContent