PDF 構文 Incremantal Update 機能 (増加更新機能)
PDF構文 (PDF Syntax ISO 32000-2)
PDF1.7は、ISO技術委員会によって2008年1月に“ISO 32000-1規格”として承認されました。2017年7月にはPDF2.0の規格ISO3200-2が承認され、2020年12月にはそれが第二稿に更新されました。
ここでは32000-2規格に基づいたPDF1.7の構文(構造)について説明しています。
PDFファイルは8-bitデータを単位として構成されていて一般の文書編集アプリケーションで開くことができその内容を読取ることができます。ただし、バイナリのデータもそのまま(表示可能な文字に変換されずに)格納されていますので文字化けしているように表示されますが、これはPDFの仕様です。
ここではそのデータの一部を読み解くことでPDF文書へのデータ追加などPDF再構成の意味を説明し、PDF-ToolsでのPDFデータ解析や編集をより詳細にできるようにします。
ここでは32000-2規格に基づいたPDF1.7の構文(構造)について説明しています。
PDFファイルは8-bitデータを単位として構成されていて一般の文書編集アプリケーションで開くことができその内容を読取ることができます。ただし、バイナリのデータもそのまま(表示可能な文字に変換されずに)格納されていますので文字化けしているように表示されますが、これはPDFの仕様です。
ここではそのデータの一部を読み解くことでPDF文書へのデータ追加などPDF再構成の意味を説明し、PDF-ToolsでのPDFデータ解析や編集をより詳細にできるようにします。
14.0 Incremantal Update(増加更新)機能
PDF文書を変更した場合に、そのPDFファイルすべてを再構成するのではなく、オリジナルのPDF文書(変更前の文書)の最後に変更部分だけが追加されたPDFファイルを作成できます。そのため、保存容量やデータ転送などでのメリットがあります。
このPDFファイルには、変更前のPDF文書がそのまま(何ら変更されることなく)格納されていますので、変更前のPDF文書を容易に取り出すことができます。
各バージョンのPDF文書はクロスリファレンスセクションのトレイラーに続く%%EOFまでをPDFファイルとして取り出すと、そのバージョンのPDFとして認識できます。
以下に複数回Incremantal UpdateされたPDFの構造を示します。
Incremantal UpdateされたPDFの構成
|
各々のトレイラー(trailer, trailer1,...,trailer N)は必ず「%%EOF」(終了マーカー)で終わっています。そのため、各バージョンの%%EOFまでをPDFファイルとして取り出すと、そのバージョンのPDFとして認識できます。
特に、上図 はサイズが明確ですので、その部分を容易に取り出せます。取り出したデータは最初の(変更されていない)PDF文書データとなります。
一般的なPDFビュアーはPDFファイルの最後にある%%EOFを終了マーカーとしますので最新版を表示します。