光学コンテンツについては、多数のPDFファイルを比較する必要があります。PDFファイルはさまざまなプラットフォームで作成されており、ソフトウェアのバージョンも異なるため、構造上の違いがあります。例えば:
- テキストのチャンクは異なる場合があります
- 書き込み順序は異なる場合があります
- 位置はいくつかのピクセルで異なる場合があります
内部構造ではなく、人間のようにコンテンツを比較する必要があります。使用したPDFジェネレーターの異なるバージョン間のリグレッションをテストしたいと思います。
光学コンテンツについては、多数のPDFファイルを比較する必要があります。PDFファイルはさまざまなプラットフォームで作成されており、ソフトウェアのバージョンも異なるため、構造上の違いがあります。例えば:
内部構造ではなく、人間のようにコンテンツを比較する必要があります。使用したPDFジェネレーターの異なるバージョン間のリグレッションをテストしたいと思います。
回答:
私たちが書いたような利用可能なツールがないからです。i-netPDFコンテンツ比較ツールをダウンロードして使用できます。私はそれが同じ問題で他の人を助けることを願っています。問題がある場合、またはフィードバックがある場合は、サポートに連絡してください。
実際にはdiffpdfツールがあります。
http://www.qtrac.eu/diffpdf.html
その弱点は、追加によって新しいテキストが部分的に新しいページにシフトしたときにうまく反応しないことです。たとえば、古いページ4をページ5の終わりとページ6の始めと比較する必要がある場合、2つのスライスを別々に比較するためにパラメーターをシフトする必要があります。
自家製のスクリプトを使用しました
使用したソフトウェア:
長所:
短所:
私はPDF / PostScriptレベルで同じことをするツールを探していました。
スクリプトがユーティリティを呼び出す方法は次のとおりです(ImageMagickはバックグラウンドでGhostScriptを使用してPDF-> PNG変換を行うことに注意してください):
$ convert -density 150x150 -fill red -opaque black +antialias 1.pdf back%02d.png
$ convert -density 150x150 -transparent white +antialias 2.pdf front%02d.png
$ composite front01.png back01.png result01.png # do this for all pairs of images
for i in $(seq -w 0 05); do /cygdrive/c/Progra~1/ImageMagick-6.6.9-Q8/composite.exe 1-$i.png 2-$i.png result-$i.png; done
pdfdiff
ディレクトリ内のPDFのページごとに1つのJPGを出力し、さらに2つのPDF間で異なるページ数を出力します。
私はここでこれを見ることができないようです、それでここにあります:スーパーユーザー経由:2つのPDFファイルの違いを比較する方法は?(回答#229891、@ slestakによる)、あります
https://github.com/vslavik/diff-pdf
(Ubuntu Nattyのビルド手順はget-diff-pdf.shにあります)
私が見る限り、それは基本的にpdfの各ページのテキスト/グラフィックをオーバーレイし、変更があったかどうかを簡単に確認できるようにします...
乾杯!
あなたの最善のアプローチは、PDFを適切な解像度で画像に変換し、画像を比較することではないと思います。
PDFから画像を生成するには、Adobe PDFライブラリ、またはPDFファイルをtiffファイルに変換するための最良の方法で提案されているソリューションを使用できます。
生成されたTIFFファイルを比較するために、GNU tiffcmp(GnuWin32 tiffのWindows部分用)が見つかり、tiffinfoはうまく機能しました。tiffcmp -lを使用し、出力の行数を数えて違いを見つけます。少量のコンテンツ変更(アンチエイリアシングの違いなど)に満足している場合は、tiffinfoを使用してピクセルの総数をカウントすると、違いのパーセンテージ値を生成できます。
ちなみに、構造が変更されていない単純なPDF比較を行う人は、コマンドラインdiffを使用して、GNU diff2.7などの特定のパターンを無視することができます。
diff --brief -I xap:-I xapMM:-I / CreationDate -I / BaseFont -I / ID --binary --text
これには、生成されたフォント名の変更を常にキャッチできるとは限らないという問題があります。
当社の製品であるPDFコンパレータ(http://www.premediasystems.com/pdfc.html ")は、これを非常にエレガントかつ効率的に実行します。これも無料ではなく、Mac OSX専用のアプリケーションです。
ImageMagick
:、私の他の回答の一部を参照 1つ-の2つの- 3つ。
ニーズに基づいて、テキストソリューションへの変換が最も簡単で直接的な方法です。ビットマップのアイデアはかなりクールだと思いました。