PDF文書のユニークな識別子なおトレイラーは、PDFが更新された場合や、リニアライズ(Web用に最適化された)PDFの場合などに複数記載されます。以下に複数のトレイラーを持つPDFを解析した結果を示します。[<9c586eecd5310b3d85076c775b385e8e><a9f116575c000045914416695c7afd90>]上で解析されたPDF文書は、リニアライズされたPDFをさらに1回更新したものです。最新のトレイラーは、Trailer.0で、Traile.1とTrailer.2は、更新前のトレイラーです。Traile.1とTrailer.2はIDが同じなので同じPDF文書のものであることがわかります。Trailer.2は、リニアライズされたPDFで最初のページをすばやく表示するために使われるトレイラーです。PDF文書のトレイラー生(Raw)データを取得PDF文書には、その終端近くにtrailer、startxref、%%EOFがこの順で記載されているものと、trailerの記載が無くstartxrefと%%EOFの2つだけがこの順で記載されたものがあります。前者の場合はキーワード「trailer」をPDFファイルの終端から検索してトレイラー情報を取り出すことができます。後者の場合はstartxrefで示されたオフセット位置にあるインダイレクトオブジェクトを取り出して更に、先頭のオブジェクト番号と世代番号などを読み飛ばした後にトレイラー情報を取り出さなければなりません。トレイラーは、PDFの形式や更新によって複数存在する場合があります。複数のトレイラーがある場合、古いトレーラの情報はそれと重複する新しいトレイラーの情報で上書きされなければなりません。Parseは、いずれの形式でもすべてのトレイラーのオフセット値とその長さ(バイト数)を取得できます。このオフセット値と長さを使って、PDFファイルから生の(未処理の)トレイラー情報を読み出すことができます。fprintf(stderr,"初期化できません。PDFに含まれるトレイラーの総数を戻す。この関数呼び出しで第二引数にNULLを指定すると、解析した結果を戻しません。トレイラーが記載されているオフセット位置"<<"で開始するディクショナリの位置を戻します。PDFから連続するバイトデータをPDF文書に記載されているまま読み出します。以下の引数を指定します。以下のような結果になります。[<1775615b6d180ff72f4473d56aaa72bf><1775615b6d180ff72f4473d56aaa72bf>]>>"また、PDFに複数のトレイラーが含まれていた場合は、以下のような結果になります。解析したPDFは、リニアライズド(Web用に最適化)PDFを1回更新したものです。コードサンプルのコードは、以下からダウンロードしてください。Parseライブラリが必要です。別途ダウンロードしてください。質問のページからお送りいただくようお願いします。ご質問・ご要望は、匿名でも送信できます。