ドキュメント比較
THPDFDocComparison は 2 つのロード済み THotPDF ドキュメントを比較し、決定的な JSON レポートを返します
構造比較
cmStructural は各ドキュメントカタログから開始し、間接参照に従い、$Catalog/Pages/Kids[0]/Contents のようなソート済み辞書キーと配列インデックスからパスを割り当てます
スカラー値とデコード済みストリームバイトは SHA-256 でハッシュ化されるため、大きなストリームは完全な別のコピーを実体化せずに増分比較されます
同じパスで異なるシグネチャを持つオブジェクトは objectChanged として報告され、異なるパスでの等しいシグネチャは objectMoved、残りの一致しないオブジェクトは objectInserted または objectDeleted として報告されます
ページ整列
抽出可能なテキストを持つページは、整列にセマンティックテキストシグネチャを使用し、テキストが空または利用できない場合は構造シグネチャにフォールバックします
最長増加部分列パスは、挿入と削除にわたってページ順序を保持し、真の並べ替えを pageMoved として報告します
一致しない整列ページは pageChanged、pageInserted、または pageDeleted になります。ページメタデータは、フォントサブセットエンコーディングノイズを避けるため、/Parent、/Contents、/Resources とは独立して署名されます
レンダリング比較
cmRenderedImage と cmFull は、共通ページを設定された DPI でレンダリングし、各ビットマップを 1 回スキャンして、変更ピクセル、変更ピクセル比率、平均絶対色誤差、最大色デルタ、グローバルな SSIM 風輝度スコアを計算します
THPDFRenderedCompareOptions は、RGB または輝度差分、ピクセルごとの色許容差、最小類似度、最大変更ピクセル比率、タイルサイズ、変更領域の保持、ピクセル予算、任意の PNG オーバーレイを選択します
ページは、変更ピクセル比率と類似度の両方のゲートが通過した場合のみ類似します。メトリクスは完全な精度で評価され、決定的な JSON 報告のためだけに小数点以下 6 桁に丸められます
変更タイルは決定的な 4 連結領域に結合され、ピクセル空間境界、変更ピクセル数、最大色デルタとともに報告されます
ヒートマップが有効な場合、ドキュメント A 上で変更ピクセルが黄から赤にブレンドされ、呼び出し元が選択したディレクトリに page-000001-diff.png 形式のファイルとして保存されます
境界と完全性
THPDFStructuralCompareLimits は、オブジェクト、エッジ、ページ、深さ、差分、ストリームバイト、値バイト、パスバイトの制限を制御します
走査が制限に達した場合、レポートは comparisonBudget を含み、comparisonComplete を false に設定し、ドキュメントを同一として報告できません
レンダリング作業は割り当て前に推定され、ページごとおよび比較ごとに制限されます。レンダリング、割り当て、またはオーバーレイの失敗は renderBudget または renderError を追加し、renderComparisonComplete と comparisonComplete を false に設定し、閉方向に失敗します
比較モード
cmPageCountはページ数を比較しますcmPageTextは抽出されたページテキストを整列し比較しますcmObjectCountは既存のセレクター値を保持し、構造オブジェクトとページ比較を実行するようになりましたcmRenderedImageは、デフォルトまたは呼び出し元が選択したオプションで知覚レンダリング比較を実行しますcmFullはページ数、構造、レンダリング比較を組み合わせますcmStructuralはレンダリングなしでページおよびオブジェクトグラフ比較を実行します
結果形式
レポートは、ソース数、走査テレメトリ、正規化された構造およびレンダリング制限、differenceCount、reportedDifferenceCount、differencesTruncated、comparisonComplete、identical、differences 配列を含みます
レンダリングモードは、ページステータス、寸法、メトリクス、変更領域、任意のオーバーレイパス、集計レンダリングページ数とピクセル数を持つ renderedPages 配列も返します
各差分は、安定した pathA と pathB 値、ページインデックス、オブジェクト番号、タイプ、詳細文字列を含むことができます
関連 API
THPDFDocComparison · CompareWithOptions · THPDFRenderedCompareOptions · THPDFComparisonMode · HPDFDocCompareDocuments