DiffPDFを試してみました(3)

DiffPDFでFROGFISH WORLDの2ページ目を比較した結果です。

まずはAppearanceモード。

DiffPDF result : Appearance

大きく変わっているけど、全体が黄色く塗られています。やはりページの背景は白じゃないとダメなようです。

そしてCharactersモード。

DiffPDF result : Characters

こちらはうまく検出してくれています。青は挿入されたテキスト、ピンクは変更された文字です。

さらにWordsモード。

DiffPDF result : Words

P.6とP.10は「……」の箇所がピンクに着色されています。でも、仮にそこに差があったとしても、どうでもいいですよね

Adobe Acrobat PRO DCのPDF比較機能もそうなのだけど、複数モードを使い分けるタイプのツールは少々厄介。3つのモードで得意不得意が違うなら、複合的なコンテンツでは3通りの比較をしなければならないので。

XORもやっとキャラ立ちできました

XOR Version 1.1をMac App Storeでリリースしました。追加機能は「囲み」と「マスク」です。

そもそもXORのVersion 1.0にはいくつもの難点がありました。

  1. 知名度が低い
  2. 有償である
  3. Windows版がない
  4. 差を見つけてくれてもすべては覚えられない

1と2に関しては地道に啓蒙活動を重ねるしかありません。3にも今しばらく時間を要します。

よって喫緊の課題だったのが4。せっかく二つのPDFの差を100%検出してくれても箇所が多ければいちいち覚えられないですよね。

そこで比較結果上で見つけた変更箇所をマーキングしたり、もう確認が不要と判断した箇所を隠したりする機能を追加しました。

他にも搭載したい機能の案はたくさんあるのだけど、ひとまずこれで実用的な最低限のツールとして成立できたと思います。

新機能がつきました!

XOR Version 1.1をリリースしました。変更箇所は以下の通りです。

  • 囲みの機能を追加
  • マスクの機能を追加
  • 細かい不具合を調整

囲みは「見つけた変更箇所をマーキングする機能」です。

マスクは逆に「変更がなかった箇所を覆い隠す機能」です。

なお、囲みとマスクはPDFを並べて表示した状態に戻したり、書き出したPDFやプリントアウトにも反映されます。

と、テキストで説明されても想像できないかもしれないので、こちらの動画をご覧ください。

DiffPDFを試してみました(2)

DiffPDFを別のテストデータでも試してみました。このblogで度々登場するいつもの「FROGFISH WORLD」です。

まず、一番頼りになるAppearanceモードの比較結果はこちら。

DiffPDF result : Appearance
DIffPDF Appearanceモードの比較結果

なんと両方のページ全体が黄色く着色されてしまいました。これだと何も見つけてくれなかったのと同じです。推測するに、差異を探すアルゴリズムが「背景色は白」という前提で比較しているのではないかと。

そしてCharactersモードとWordsモード。

DiffPDF result : Characters
DIffPDF Charactersモードの比較結果
DiffPDF result : Words
DIffPDF Wordsモードの比較結果

ほぼ同じですね。Charactersモードは文字単位比較なので「Yogata」と「YOGATA」の先頭の「Y」の字が差異から除外されているだけで。

そして「TROPICAL PACIFIC」という白文字のフォントの違いはどちらのモードも見逃しています。

ちなみに「TROPICAL PACIFIC」はAdobe Acrobat PRO DCのPDF比較でも見逃されてしまう箇所です。

そう、PDFのデータを解析して比較する方式だと100%の比較結果が出ないのが以前から解っていたので、「その弱点を補うアプリには需要があるはず」と踏んでヴィジュアル比較方のXORを開発してリリースしました。

DiffPDFを試してみました(1)

DiffPDFというPDF比較アプリがあります。「PDF比較ツール」といった検索をかけるとAcrobatに次いで割と上位に表示されますよね。ライセンスは$160、20日の試用期間があります。

こちらがなかなかの評判なので試してみました。

下図はテストデータを読み込ませた直後の状態。両方とも1ページのみです。

DiffPDFの比較前

まず気づくのが「Mode」。三種類の比較モードが用意されています。

DiffPDFのモード

せっかくなので三つとも試すことにします。

Appearance

見た目の比較モード。いわゆるヴィジュアル比較方式です。

DiffPDF(Appearance)

薄い黄色は差異が含まれる箇所。すべての変更箇所を見つけてくれています。さすが。ヴィジュアル比較は頼もしいですよね。

Characters

文字比較かな。

DiffPDF(Characters)

画像関連の比較がまったくなされないのはしかたないにしても、写真下の「f11 1/125」と「f16 1/60」やタイトル下の「Mandarin fish」と「Mandarinfish」の違いを検出してくれていないのは残念です。どちらもテキスト情報なのに。

Words

文字比較かな。

なぜ「Characters」と別れているのかは不明ですが、明らかに比較結果の表示が違うので、アルゴリズムが違うのでしょう。文節重視の比較でしょうか?

DiffPDF(Words)

「Mandarin fish」と「Mandarinfish」の違いを検出してくれたけど、「f11 1/125」と「f16 1/60」はやはり見逃しています。

感想

このデータに限って言えば、頼りになるのは「Appearance」のモードだけでした。

そう、解析方式によるPDF比較ではどうしてもデータ構造との相性の良し悪しが出ます。うまく行くときもあればいかないときもあり、結果を鵜呑みにすると痛い目に遭いかねないという。

だからこそXORもヴィジュアル比較方式を採用しました。「どう変わったか?」は認識できないけど、そもそも変更箇所が正しい修正かどうかは人間が確かめる必要があるのだから、変更箇所だけ洗い出してくれれば十分だろうという判断です。

DiffPDFのライセンスは$160だから、XORを8ヶ月分契約するよりも便利だと思われるならお勧めです。