« 2007年06月10日 | メイン | 2007年06月12日 »

2007年06月11日

PDFと署名(39) — PDFの増分更新

PDF文書の変更と署名の関係について、調べてみました。これについてお話する前に、PDF文書を作成したあと変更した場合、PDFファイルがどのようになるかを見てみたいと思います。

PDFファイルは、適当なツールを使えば内容を編集(削除、追加、変更)したり、しおりをつけたりといった、様々な変更を施すことができます。そのような変更を行った結果をPDFファイルに保存するときの方法に「増分更新」という保存方法があります。

増分更新とは、変更前のPDFファイルの内容をそのままに維持して、変更前のファイルの最後に変更した内容を追加し、新しいPDFファイルを作る方法です。

Acrobat 8では、PDFを編集して「上書き保存」すると増分更新となります。「名前をつけて保存」すると増分更新ではなく、新しい内容(編集前のPDFの内容が維持されない)になるようです。

次の図は、Wordと「Antenna House PDF Driver」でオリジナルPDFを作成し、Acrobat 8でオリジナルのPDF(左)に、1行追加して上書き保存(中央)し、さらに一行追加して上書き保存(右)したものです。
20070611-1.PNG
オリジナルPDFファイルをダウンロード
1行追加して、上書き保存したPDFファイルをダウンロード
さらに1行追加して、上書き保存したPDFファイルをダウンロード

一般にPDFファイルは、%%EOFが区切りになっています。そしてファイルの最後には必ず%%EOFが入ります。そこで、この3つのPDFファイルで%%EOFが入っている位置に注目して図に示しますと次のようになります。
20070611-10.PNG

(注)正確には%%EOF位置の後ろの改行コード(0D0A)の0Aの位置を示しています。

増分更新では、編集前の古い世代のPDFがそのまま保持され、%%EOFの後ろに、変更した内容が追加されます。Acrobatのマニュアルには「ファイル」-「復帰」メニューで増分更新したPDFを前の世代に戻せると書いてありますが、なぜか、このPDFではメニューがグレーになってしまっています。

そこで、バイナリエディタで、%%EOFを区切りにして、追加された部分を削除してみました。次のPDFは、「さらに1行追加して、上書き保存したPDFファイル」をバイナリエディタで開いて、0e30以降を削除したものです。

さらに1行追加して、上書き保存したPDFファイルから0e30以降を削除したPDFファイルをダウンロード

これをご覧いただきますと、増分更新された部分を強制的に削除すると、オリジナルPDFに戻っていることが分かります。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック