区切り文字(Delimiter character)
区切り文字(Delimiter character)は、PDF構文において異なる構文要素やトークン間の境界を示す特殊文字です。
区切り文字(Delimiter character)は、PDF構文において異なる構文要素やトークン間の境界を示す特殊文字です。 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されているように、これらの文字には、スラッシュ(/)、山括弧(< >)、角括弧([ ])、丸括弧(( ))、波括弧({ })が含まれます。区切り文字は、オブジェクト、名前、文字列、その他のデータ型を明確に分離することで、PDFファイル構造の解析において重要な役割を果たします。
区切り文字とは、PDFファイル構造内のトークンを分離または囲むために使用される、PDF構文における特定の文字セットです。区切り文字の完全なセットは、スラッシュ(/)、小なり記号(<)、大なり記号(>)、左角括弧([)、右角括弧(])、左丸括弧(()、右丸括弧())、左波括弧({)、右波括弧(})で構成されます。
トークンを分離する役割を持つ空白文字(スペース、タブ、改行など)が多くの場合省略可能であるのに対し、区切り文字は構文上重要であり、特定の文脈で必須となります。例えば、スラッシュ(/)はすべての名前オブジェクトの前に付けなければならず、丸括弧はリテラル文字列を囲む必要があります。区切り文字は通常のデータ文字とは異なり、特別なエンコーディングやエスケープ処理なしには特定のトークン内に含めることができません。
一部の区切り文字はペアで動作し(丸括弧、角括弧、山括弧など)、データ構造を囲みますが、他の文字(スラッシュなど)はマーカーとして独立して機能します。 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) によれば、これらの文字はPDFの字句構造の基本であり、すべてのPDFパーサーで認識される必要があります。
区切り文字の理解は、PDF生成、解析、操作を行う開発者にとって不可欠です。PDFコンテンツストリームの記述やPDFオブジェクトのプログラム的な構築において、区切り文字の誤った使用や省略は、適切にレンダリングまたは処理できない不正なPDFファイルを生成する原因となります。
PDFライブラリやツールを構築する開発者にとって、区切り文字の適切な処理は、正確なトークン化と解析に不可欠です。パーサーはこれらの文字を認識することで、あるトークンがどこで終わり、次のトークンがどこから始まるかを正しく識別し、名前、配列、辞書、文字列の適切な解釈を可能にします。
( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) 標準に準拠したアクセシブルなPDFを扱う場合、適切な区切り文字の使用を含む正しい構造化された構文により、支援技術が文書構造ツリーやタグ付きコンテンツを正確に解析し解釈できることが保証されます。
区切り文字は、PDFの字句スキャナーによるトークン化プロセスの一部として機能します。PDFパーサーがファイルを順次読み取る際、空白文字とともに区切り文字を使用してトークンの境界を識別し、トークンの型を決定します。
スラッシュ(/)区切り文字は、PDFの基本的なデータ型の1つである名前オブジェクトを導入します。例えば、/Typeは名前オブジェクトを表し、スラッシュはパーサーに対して、次の空白または区切り文字が現れるまでが名前トークンであることを示します。
ペアになった区切り文字は階層構造を作成します。角括弧([ ])はオブジェクトの配列を囲みます:[1 2 3 /Name]は、3つの整数と1つの名前を含む配列を表します。ペアになった山括弧(« »)は、キーと値のペアを含む辞書オブジェクトを区切ります:<< /Type /Page >>。単一の山括弧(< >)は16進数文字列データを囲みます。
丸括弧(( ))はリテラル文字列オブジェクトを囲み、その内容は文字列データとして解釈されます:(Hello World)。リテラル文字列内では、丸括弧は対になっているか、バックスラッシュでエスケープされている必要があります。波括弧({ })は、PDFコンテンツストリーム内のPostScript手続きで使用されます。
パーサーは、これらの区切り文字を文脈に応じて処理する必要があります。その意味は状況によって異なる可能性があるためです。例えば、丸括弧で囲まれたリテラル文字列内では、他のほとんどの区切り文字は特殊な意味を失い、リテラル文字として扱われますが、対になっていない丸括弧はエスケープする必要があります。
- Token(トークン) – PDFの構文における基本的な字句単位で、空白文字または区切り文字によって分離される
- Name Object(名前オブジェクト) – スラッシュ区切り文字で始まり、アトミックなシンボルを表すPDFのデータ型
- Dictionary Object(辞書オブジェクト) – ペアになった山括弧区切り文字(« »)で囲まれたキーと値のデータ構造
- Literal String(リテラル文字列) – 丸括弧区切り文字で囲まれ、テキストが直接解釈される文字列データ型
- Array Object(配列オブジェクト) – 角括弧区切り文字で囲まれたPDFオブジェクトの順序付きコレクション
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
