XORは下図のような未開きページを含むPDFの比較には対応しておりません。
このような構造の新旧PDFを比較したい場合、InDesign等のDTPアプリで単ページのPDFとして書き出してから比較してください。
for Mac & Windows
XOR for WIndows Version 1.6をリリースしました。既存ユーザは無料でアップグレードでき、新規ユーザは1ヶ月間無料でお使いいただけます。
今回追加された新機能は「不変ページの自動検出」と「サーモ表示」です。
まず、修正前と後のPDFで変更がなかったページはこのように表示されます。
ちなみに差異がある場合はこのとおり。
これにより制作者は差異の有無を一瞬で把握でき、「DTPの過程で不要な変更が紛れ込んでいないか?」の確認作業が要らなくなります。
もう一つの新機能は「サーモ表示」です。差分箇所だけを赤で表示します。「透かし表示」の状態でスペースキーを押すとサーモ表示に切り替わります。
なお、これらの機能はMac版に搭載済みです。
ちなみにこの二つの追加機能はユーザ様からのリクエストがきっかけで搭載しました。搭載して欲しい機能案があればリクエストをお寄せください。感想も大歓迎です。
XOR for Mac Version 2.1では新機能として「不変ページの自動検出」と「サーモ表示」を搭載したものの、当初の予定では自動検出のみを盛り込む方向で進めていました。それだけで大きな進歩になるはずだと。
ただし、いざ不変ページの自動検出を作り込み、さまざまなテストデータを試したところ、同じページなのに「Unchanged」になったりならなかったりという事象が見られました。もちろんアルゴリズムは同じなので不可解な話です。
具体的には、テスト用にとあるPDFのペアから最後のページだけを削除したバージョンを作って試したところ、全ページが揃ったPDFとでは「Unchanged」になるページの組み合わせが食い違う点に気づきました。
調べてみたところ、原因はページを削除して保存した際にPDFのデータ構造が微妙に変わることでした。そう、PDFは見た目が同じでもデータ構造が違っているケースがよくあります。それがXORでレンダリングする際に数ドット程度の微妙な差異を生み出していたわけです。不変ページの自動検出機能は当然ながら1ドットでも違いが見つかれば差異があると見なします。
ちなみにPDFのデータ構造を解析して比較するタイプのPDF比較アプリが差異の後検出や検出漏れを起こすのも、PDFの保存状態との相性が理由だったりします。そのせいでアルゴリズムに要素のペアリングを誤認識させたり、チェックをすり抜けてしまうという。
で、数ドットの微妙な差異をXORで吸収できればよかったのだけど、あらゆるケースを想定するのは不可能なので諦めて、代わりにユーザが微妙な差異を見つけやすくするべく急遽サーモ表示を追加しました。