多数のPDFファイルを比較するツールですか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/145657

  •  02-07-2019
  •  | 
  •  

質問

大量の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)の各ページのテキスト/グラフィックをオーバーレイするため、変更があったかどうかを簡単に確認できます...

乾杯!

pdftotext (Sklivvzの回答を参照)を使用して、ASCIIバージョンのPDFを生成し、 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 (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が必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top