tow pdfファイルの類似性を知りたいのですが、詳細な内容比較はしたくありません。その外部構造からだけの解決策はありますか?それは可能ですか?ありがとう!
3 に答える
難しそうに聞こえるかもしれませんが、ここでは PDF メタデータからの簡単な成果を、難易度の高い順に示します。
eBook-title
やなどのドキュメント メタデータTitle
- ドキュメント内のページ数 (カウント
/Page
ディレクティブ) - 、、など、各ページのメタデータを比較します
MediaBox
。CropBox
BleedBox
TrimBox
- 画像やドキュメント固有のフォントなどの埋め込みコンテンツを探し、それらが完全に一致するかどうかを確認します。
strings
プレーンテキストを引き出して単語を比較します: 単語数、最も一般的な単語など または、ファイルにアクセスして を見つけることもできます(blah blah blah) Tj
。これは、ほとんどのテキストが PDF コンテンツに格納されている方法です。
最後に、GhostScript または別のライブラリを使用してそれらをラスター形式に変換し、その方法で比較することでごまかすことができる場合があります。100px などの低解像度に変換すると、大まかなディテールが同じように見える場合があります。
PDF を直接操作したことがなくても、怖くありません。これは単なるテキスト ファイル (解凍後) であり、多かれ少なかれ行ごとに解析できます。HTMLドキュメントからPDFへの回答でPDFについて詳しく説明します。
PDFは単なるテキストファイルではありません。そのBツリーのバイナリダンプ。圧縮されたオブジェクトを使用すると、他のバイナリオブジェクト内でオブジェクトデータを圧縮して、それらを表示できないようにすることもできます。
低レベルのテキスト操作を行いたい場合は、まともなツールを使用する必要があります。Acrobat 9.0には、内部PDF構造を参照するためのメニューオプションがあります。または、ITextなどを使用することもできます。
2 つのファイルが異なるかどうかは、ハッシュ (md5 など) を実行することでわかりますが、それらの類似度はわかりません。
2 つのバイナリ ファイルの相違点を妥当な結果で示すことができるバイナリ diff プログラムがありますが、多くのバイナリ ファイル、特にドキュメント コンテナーでは、内部コンテンツのわずかな違いしかない場合でも、多くのバイナリの違いを示すことができます。
私はpdf形式の詳細に精通していません。多分他の誰かが役立つかもしれない組み込みのメカニズムを知っています。