PDF1.7の仕様書(ISO 32000-1:2008)に関する質問
何をしているか
https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
ここにあるPDF1.7の仕様書を読み進めている途中です。
質問内容
7.5.4 Cross-Reference Table
nnnnnnnnnn shall be a 10-digit byte offset in the decoded stream
この "decoded stream" は "encoded stream" の間違いじゃないのか、と思っているのですが、如何でしょうか。
それとも、ここでいう decoded とは stream object における Filter とは別の意味でのデコードなのでしょうか。
なぜそう思うのか
Cross-Reference Table は、任意の indirect object をファイル上でランダムアクセスするために記載される情報なので、各 stream object はまだデコードされていない状態で、ファイルの先頭から indirect object の先頭のバイトオフセットを示すのが正しいと考えたためです。
その他の根拠
上記URLのファイル自体PDFなのでそのファイルを解析してみたところ、オブジェクト番号11, 世代番号0のオブジェクトがFilter付きでした。
その次の indirect object, 即ちオブジェクト番号12, 世代番号0のオブジェクトの Cross-Reference Table 上のオフセットと、実際のファイルの先頭からのオフセットを比較してみたところ、オブジェクト番号11, 世代番号0のオブジェクトはそのままエンコードされている状態で、2つのオフセットが一致しました。
このことから、もしこのオブジェクトが、デコードによってバイト数が変わるのであれば、"encoded stream" の状態で、Cross-Reference Table 上にファイルの先頭からのオフセットを記録していると考えられます。
あなたの回答
tips
プレビュー