PDFium Delphi Component Docs

CompareWith メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
2 つのアクティブなドキュメントを比較し、上限付きの意味的・幾何的・視覚的な証拠を返します

構文

function CompareWith(Other: TPdf; const Options: TPdfDocumentDiffOptions; out Report: TPdfDocumentDiffReport): Boolean;

OtherTPdf. 比較対象のもう 1 つのアクティブなドキュメント
OptionsTPdfDocumentDiffOptions. RenderWidth、RenderHeight、ColorTolerance、CompareText、ComparePageGeometry、MaxPages の各フィールドと、Default クラス関数を持ちます
ReportTPdfDocumentDiffReport. Equivalent、Truncated、LeftPageCount、RightPageCount、ComparedPageCount、DifferentPageCount、PixelDifferenceCount、Differences の各フィールドを持ちます。各 TPdfPageDifference は PageIndex、TextDifferent、GeometryDifferent、PixelDifferenceCount、PixelBounds を持ちます
ResultBoolean. 選択されたオプションのもとでドキュメントが等価である場合に True

説明

比較では、コンテンツストリームを並列に解釈する代わりに、PDFium のテキスト抽出とレンダリングを使用します

幾何情報にはページの寸法と回転が含まれます。視覚比較では、呼び出し側の色許容差をチャネルごとに適用し、変化したピクセルの境界を報告します

MaxPages は、信頼できないドキュメントや非常に大きなドキュメントに対する処理量を制限します。Truncated は、その上限で比較が停止したことを報告します

両ドキュメントの現在ページは、メソッドが返る前に復元されます

ページ対応付けと詳細比較

従来の Default は同じ位置のページを比較します。AlignPages を True にすると挿入、削除、完全一致のページ移動を識別します

対応付けには抽出テキスト、ページ形状、64-by-64 の描画フィンガープリントを使います。重複の対応は決定的で、変更と移動が同時に起きたページは変更と報告する場合があります

PagePairs と各差分は 0 始まりの LeftPageIndex と RightPageIndex を公開し、存在しないページは -1 です。Kind は dpkMatched、dpkModified、dpkMoved、dpkInserted、dpkDeleted のいずれかです

TextDiffMode は dtmNone、dtmCharacters、dtmWords を選びます。TextChanges は UTF-16 の LeftStart、LeftLength、RightStart、RightLength を、サロゲートペアを分割せずに報告します

CollectPixelRegions は連結した tile の PixelRegions を追加し、Right と Bottom は境界を含みません。従来の PixelBounds の和集合も維持します

MaxAlignmentCells、MaxTextCharacters、MaxTextDiffCells、MaxTextTokens、PixelRegionTileSize、MaxPixelRegions、MaxDetailItems は詳細処理を制限します。DetailTruncated は詳細の未完了を示し、ページ上限の Truncated とは独立しています

Report は InsertedPageCount、DeletedPageCount、MovedPageCount を含みます。各差分にも個別の DetailTruncated があります

RenderDiffOverlay は呼び出し側が所有する視覚 overlay を出力します。FPdfDiff は上限付きのヘルパーアルゴリズムを公開します

関連項目

RenderPage, Text, ImportImposed