光学コンテンツについては、多数のPDFファイルを比較する必要があります。PDFファイルはさまざまなプラットフォームで作成されており、ソフトウェアのバージョンも異なるため、構造上の違いがあります。例えば:
- テキストのチャンクは異なる場合があります
- 書き込み順序は異なる場合があります
- 位置はいくつかのピクセルで異なる場合があります
内部構造ではなく、人間のようにコンテンツを比較する必要があります。使用したPDFジェネレーターの異なるバージョン間の回帰をテストしたいと思います。
実際には 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
ここでこれを見ることができないようですので、ここにあります:スーパーユーザー経由:2つのPDFファイルの違いを比較するにはどうすればよいですか?(回答#229891、@ slestakによる)、あります
https://github.com/vslavik/diff-pdf
(Ubuntu Natty のビルド手順はget-diff-pdf.shにあります)
私が見る限り、それは基本的にPDFの各ページのテキスト/グラフィックスをオーバーレイするため、変更があったかどうかを簡単に確認できます...
乾杯!
また、pdftotext (Sklivvz の回答を参照) を使用して PDF の ASCII バージョンを生成し、wdiffを使用してそれらを比較しました。
pdftotext の-layout
スイッチを使用して、読みやすさを向上させ、レイアウトの変更を把握します。
wdiff からきれいな色の出力を取得するには、次のラッパー スクリプトを使用します。
#!/bin/sh
RED=$'\e'"[1;31m"
GREEN=$'\e'"[1;32m"
RESET=$'\e'"[0m"
wdiff -w$RED -x$RESET -y$GREEN -z$RESET -n $1 $2
あなたの最善のアプローチは、PDFを適切な解像度で画像に変換し、画像を比較することだと思います。
PDF から画像を生成するには、Adobe PDF ライブラリまたはpdf ファイルを tiff ファイルに変換するための最良の方法で提案されているソリューションを使用できます。
生成された TIFF ファイルを比較するために、GNU tiffcmp ( GnuWin32 tiffの Windows 部分用) とtiffinfoがうまく機能していることがわかりました。tiffcmp -l を使用し、出力の行数を数えて違いを見つけます。少量のコンテンツ変更 (例: アンチエイリアシングの違い) を喜んで行う場合は、tiffinfo を使用してピクセルの総数をカウントし、パーセンテージの差分値を生成できます。
ところで、構造が変更されていない単純な PDF 比較を行う場合は、コマンド ライン diff を使用して特定のパターンを無視することができます。たとえば、GNU diff 2.7 では次のようになります。
diff --brief -I xap: -I xapMM: -I /CreationDate -I /BaseFont -I /ID --binary --text
これには、生成されたフォント名の変更を常にキャッチできるとは限らないという問題がまだあります。
ニーズに基づいて、テキストへの変換ソリューションが最も簡単で直接的です。ビットマップのアイデアはかなりクールだと思いました。
当社の製品である PDF Comparator - http://www.premediasystems.com/pdfc.html " - は、これを非常にエレガントかつ効率的に実行します。これも無料ではなく、Mac OS X 専用のアプリケーションです。
Blubeam pdf ソフトウェアがこれを行います
Tarkware Pdf Comparer を使用して、pdf ファイルをバッチ比較できます。ただし、無料ではなく、Adobe Acrobat が必要です。