« 2007年06月11日 | メイン | 2007年06月13日 »

2007年06月12日

PDFと署名(40) —PDFの増分更新(続き)

PDF Referenceではincremental updateという言葉を使っていましたので、増分更新という言葉を訳語として当てはめてみました。日本語で増分更新と言いますと、いかにも、後ろに追記していくような印象を受けます。

しかし、実は、追記ではなく、文字列を削除したり、書き換え(更新)する場合でも、PDFファイル上は、増分更新の形式となります。その例を示してみます。

(1)文字列をタッチアップツールで変更した例
オリジナルのPDFの文字列を修正して上書き保存、さらに、修正して上書き保存しました。
20070612-1.PNG
オリジナルPDFファイルをダウンロード
修正したPDFファイルをダウンロード
修正に修正を重ねたPDFファイルをダウンロード

昨日と同じように、この3つのPDFファイルの%%EOFの位置をチェックしますと次のようになります。
20070612-2.PNG

第3番目「修正に修正を重ねたPDF」ファイルでは、3つの%%EOFがあります。バイナリのエディタで、PDFファイルを開いて、2つめ&&EOFから後ろを全部削除してみます。
a. 削除する範囲を選択
20070612-3.PNG

b.削除後
20070612-4.PNG

こうして削除したファイルを保存し、削除前のPDFと削除後のPDFを比較してみます。

20070612-5.PNG

このように、増分更新した場合、削除されたはずの情報もそのまま残っていますので、更新された部分のデータをPDFから削除すると、削除されるまえのPDFに戻ります。

(2)ページの追加削除は増分更新になるときとならない時がある
Acrobat 8 の増分更新は、文字列のみではなく、PDFのページ追加、ページ挿入、ページ削除なども、後ろのページについてであれば有効です。但し、PDFの途中のページを削除しますと、上書き保存しても増分更新にはならないようです。

(3)増分更新ではリニアライズは無効になる
なお、増分更新しますと、リニアライズ(Web表示用に最適化)は、仮に設定されていても無効となります。リニアライズでは、ファイルの先頭にランダムアクセスのための情報が必要ですが、増分更新は、ファイルの後ろへの追加になりますので、リニアライズと矛盾するからです。

投票をお願いいたします

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