PDFium Delphi Component Docs

SaveAsRedacted メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
分離されたスナップショットに PDF 墨消し注釈を適用し、読み込まれたドキュメントを変更せずにクリーンな単一リビジョン結果を書き込みます

構文

function SaveAsRedacted(Stream: TStream;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

function SaveAsRedacted(const FileName: string;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

説明

SaveAsRedacted は現在のドキュメントを分離されたランダムアクセススナップショットにキャプチャし、そのスナップショットを別の TPdf として開き、すべての /Redact 注釈矩形を処理します

既定では PreservePartialObjects と PreserveComplexObjects を有効にし、対応する安全な形状を残します。この制限付きプロファイルは保持した文字断片からテキストを再構築し、単色の塗りパスを切り抜き、アフィン画像の交差ピクセルを消去します

墨消し注釈が 1 つでもあれば、詳細プロファイルは墨消しのないページも含め、すべてのページの Form XObject インスタンスを展開してから処理します。インスタンス変換を合成し、元の共有 Form stream は後のリソース削除で除去できます

PreservePartialObjects := False は交差するオブジェクト全体を削除します。有効のまま PreserveComplexObjects := False にすると、テキスト、軸に平行な矩形、軸に平行な画像の簡易断片化を使います。ソースの安全性検査は 3 つの全プロファイルに適用します

すべての墨消し注釈を削除し、設定に応じて交差する他の注釈も削除します。墨消しページの file-attachment 注釈とネイティブの埋め込み添付を削除し、catalog の /AF、active content、フォーム、メタデータ、到達できないオブジェクトを取り除いてサニタイズ書き換えを実行します

ページコンテンツの再生成後、精密なリソース刈り込みがページ、Form XObject、パターン、外観、継承、ネストされたリソーススコープを走査し、到達不能オブジェクトが破棄される前に未使用の名前だけを除去します

出力は過去のリビジョンを含まない 1 つのクリーンなリビジョンです。読み込み済みのソース文書は変更しません。未対応のソースの意味や詳細形状では、不完全な墨消し結果を出さず処理を中止します

オプション

上記の Form、path、image、geometry、tolerance 設定は詳細プロファイルで検証/使用します。独立したソース検査の上限を増やすものではありません

レポート

TPdfRedactionReport は RedactionCount、RedactedPageCount、ScannedObjectCount、RemovedObjectCount、RemovedAnnotationCount、RemovedAttachmentCount、OverlayCount、SplitTextObjectCount、SplitPathObjectCount、SplitImageObjectCount、PreservedFragmentCount、バイト数、ネストされた SanitiseReport と ResourcePruneReport、Succeeded、ErrorMessage を返します

詳細処理は ExpandedFormCount、ScannedFormChildCount、FlattenedCurveCount、GeneratedPathPointCount、MaskedImageCount、ScannedImagePixelCount、MaskedImagePixelCount、PixelIntersectionTestCount、GeometryOperationCount を追加します。CurveTolerancePdfPoints は正常処理後の設定許容値です

ScannedFormChildCount はルート Form インスタンスを含む展開中のネイティブ訪問数です。GeneratedPathPointCount は平坦化した曲線点と途中のクリップ点の両方を含みます

MaskedImagePixelCount は色と alpha の全サンプルを消去したピクセル数です。PreservedFragmentCount は個々のピクセルや多角形輪郭ではなく置換オブジェクト数です。失敗時のカウンターは途中までの場合があり、出力の commit を示しません

セキュリティ境界

例

var
  Options: TPdfRedactionOptions;
  Report: TPdfRedactionReport;
begin
  Options := TPdfRedactionOptions.Default;
  Options.FillColor := clBlack;
  if not Pdf1.SaveAsRedacted('C:\redacted.pdf', Options, Report) then
    raise Exception.Create(Report.ErrorMessage);
end;

関連項目

SaveAsSanitised, SaveAsReachable, CreateAnnotation, FPdfRedaction 形状ヘルパー