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 つのクリーンなリビジョンです。読み込み済みのソース文書は変更しません。未対応のソースの意味や詳細形状では、不完全な墨消し結果を出さず処理を中止します
FillColor — 不透明な置換色。既定は clBlackRemoveIntersectingAnnotations — 矩形が墨消し矩形と重なる非墨消し注釈を削除します。既定値は TrueMaxPageObjects — 墨消しページ全体で走査するトップレベルページオブジェクトの最大数。既定値は 1000000PreservePartialObjects — 対応している交差しないテキスト、パス、画像のフラグメントを保持します。既定値は TrueMaxSplitObjects — 操作全体で作成される安全なフラグメントの最大数。既定値は 1000000PreserveComplexObjects — PreservePartialObjects も有効な場合に、上限付き Form 展開、単色の塗りパス切り抜き、アフィン画像のピクセル消去を有効にします。既定は TrueMaxFormDepth — 入れ子の Form 展開深さ。既定は 32、範囲は 1..64MaxPathPoints — 対象パスのセグメントと生成したパス点の累積上限。既定は 262144、範囲は 1..1000000MaxImagePixels — 詳細画像置換で処理するデコード済みピクセルの累積上限。既定は 16777216、範囲は 1..67108864MaxGeometryOperations — 注釈/テキスト走査、パス分割/切り抜き、ピクセル交差検査を含む詳細形状処理の累積上限。既定は 67108864、範囲は 1..1000000000CurveTolerancePdfPoints — ページ空間の 3 次曲線平坦化許容値。既定は 0.01、有限範囲は 0.0001..0.1 です。切り抜きはこの値と 0.001 PDF ポイント分広げるため、安全側の狭い追加余白が削除される場合があります上記の 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 を示しません
0.001 PDF ポイント広げた墨消し矩形に触れると、RGB と alpha の両方をゼロにします。その後、不透明な FillColor overlay で矩形を覆います/ActualText//Alt の置換データ、XFA、/OCProperties、/OCG、/OCMD を含む optional-content layer の意味を拒否します。論理構造の再構築や隠れた意味の保持は行いませんTr、scn/SCN の pattern/特殊色空間の描画も拒否します。検査可能な内容 stream は無フィルターか単一の名前付き /FlateDecode です256 MiB、有効オブジェクト本体ごとに 64 MiB、本体合計 256 MiB、デコードした object stream ごとに 64 MiB、合計 256 MiB、object slot 1000000 です。内容デコードにはさらに stream ごとに 32 MiB、合計 64 MiB を適用します/AF、/Names ツリー、ネイティブ埋め込み添付、墨消しページのファイル添付注釈は削除されます。無関係な構造辞書にネストされた任意の関連ファイルエントリは、このメソッドの明示的な保証外です/Redact 注釈がなくても、サニタイズされた単一リビジョンの安全性プロファイルを生成します
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;