多数のPDFファイルを比較するツールですか? [閉まっている]
質問
大量のPDFファイルを光学コンテンツと比較する必要があります。 PDFファイルは異なるプラットフォームおよび異なるバージョンのソフトウェアで作成されたため、構造的な違いがあります。例:
- テキストのチャンクは異なる場合があります
- 書き込み順序は異なる場合があります
- 位置はピクセルによって異なる場合があります
内部構造ではなく、人間のようなコンテンツを比較する必要があります。使用したPDFジェネレーターの異なるバージョン間の回帰テストを行いたい。
解決
作成したツールは存在しないためです。 i-net PDFコンテンツ比較ツールをダウンロードして使用できます。同じ問題が他の人にも役立つことを願っています。問題がある場合、またはフィードバックがある場合は、サポートにお問い合わせください。
他のヒント
実際にはdiffpdfツールがあります。
http://www.qtrac.eu/diffpdf.html
弱点は、追加によって新しいテキストが部分的に新しいページに移動する場合にうまく反応しないことです。たとえば、古いページ4をページ5の終わりとページ6の始めと比較する必要がある場合、2つのスライスを個別に比較するためにパラメーターをシフトする必要があります。
私は自家製のスクリプトを使用しました
- 2つのPDFのすべてのページをビットマップに変換します
- PDF 1のページを赤白に色付け
- PDF 2のページで白を透明に変更します
- PDF 2の各ページをPDF 1の対応するページの上に重ねます
- 複数のコアで並行して変換/カラーリングとオーバーレイを実行します
使用したソフトウェア:
- PDFからビットマップへの変換用のGhostScript
- カラーリング、透明度、オーバーレイ用のImageMagick
- 並列プロセスを同期するためのinotify
- 結果を確認するためのPNG対応の画像ビューア
長所:
- 単純な実装
- 使用されるすべてのツールはオープンソースです
- レイアウトの小さな違いを見つけるのに最適
短所:
- 変換が遅い
- PDFの大きな違い(ページネーションなど)は混乱を招く
- ビットマップはズームできません
- 白黒のテキストと図にのみ有効です
- 使いやすいGUIはありません
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
私はここでこれを見ることができないようですので、ここにあります:via スーパーユーザー:2つのPDFファイルの違いを比較する方法は? (@slestakによる#229891の回答)、あります
https://github.com/vslavik/diff-pdf
(Ubuntu Nattyのビルド手順は、 get-diff-pdf.sh )
私が見る限り、基本的にpdf(s)の各ページのテキスト/グラフィックをオーバーレイするため、変更があったかどうかを簡単に確認できます...
乾杯!
最善のアプローチは、PDFを適切な解像度の画像に変換し、画像を比較することではないと思います。
PDFから画像を生成するには、Adobe PDFライブラリまたは pdfファイルをtiffファイルに変換する最良の方法。
生成されたTIFFファイルを比較するには、GNU tiffcmp (Windows用) GnuWin32 tiff )および 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専用のアプリケーションです。
あなたのニーズに基づいて、テキストへの変換ソリューションが最も簡単で最も直接的なものになります。ビットマップのアイデアはとてもクールだと思いました。
bluebeam pdfソフトウェアがこれを行います
pdfを比較して、Tarkware Pdf Comparerでバッチ処理できます。ただし、無料ではなく、Adobe Acrobatが必要です。