20]に対応させています。PDFの表記は一見奇妙でも、だいたい他の言語の要素と対応付けることが出来ます。上記の辞書は次のJSONと概ね同じです。20]}PDFにおける「名前」はJSONにはありませんから便宜上文字列で表しましたが、「概ねのイメージ」では上のような感じに思って頂いて大丈夫です。いったおかしな記号は使っているものの、次第に見慣れてくると思います。PDFは「ストリーム」があります。ストリームは、バイナリ列と、そのバイナリ列に関する情報の辞書の組です。TjETendstreamストリーム辞書には/Lengthが必須項目です。ストリームの本体は、streamとendstreamの間に記述します。本体をどのように記述すればいいかは、後で詳しく説明します。(ストリーム辞書の/Filterによって、ストリームの圧縮方法を指定します。既存のPDF文書を見る時の手がかりにしてください)。PDFの基本要素は以上です。逆に言うと、他の言語には普通にあるもの、例えば分岐、繰り返しや関数などはありません。まとめると、PDFのオブジェクトは以下の8種類です。endstream)これらは全てオブジェクトです。リテラルもオブジェクトです。辞書も、配列も、文字列も、数字もnullもtrueもfalseも全部オブジェクトです。この章の最後に、コメントについて説明します。PDFにおけるコメントを表す文字は%です。文字列やストリームの外で%があると、その場所から行末までがコメントになります。comment!)endobjPDFを扱うプログラムがコメントに書かれた内容を保存するとは限りません。PDFのユーザーに何かを伝える目的でコメントを書くことは全く意味がありません。どんなPDFファイルにも存在し、かつPDFのファイル構造にとって特別なコメントが2つあります。%PDF-1.NPDFファイルの先頭には必ずこの行があります。1.NはPDFのバージョンを表し、現在Nには0から7までの値を使うことが出来ます。%%EOFPDFファイルの最後に必ず書かれています。これらについてはファイル構造の章でもう少し詳しく説明します。間接参照PDFには、オブジェクトに番号をつけて、それを参照する仕組みがあります。reference)」と呼ばれます。他の言語で言えば変数に相当するものですが、再代入は出来ず、単純な「数字」を割り当ててそれを「参照」するだけの仕組みです。変数に例えて説明するのは少し無理があるかもしれません。任意のオブジェクトには、ラベル番号をつけることができます。