ASCIIHexDecode
ASCIIHexDecodeは、PDFドキュメント内でバイナリデータを16進数のASCII文字としてエンコードするために使用されるフィルタです。
ASCIIHexDecodeは、PDFドキュメント内でバイナリデータを16進数のASCII文字としてエンコードするために使用されるフィルタです。 ( 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 ) で定義されているように、このエンコード方式は、バイナリデータの各バイトを2桁の16進数として表現し、7ビットASCIIのみをサポートするシステムを通じてバイナリコンテンツを読み取り可能かつ送信可能にします。このフィルタは、データストリームを処理するためにPDF仕様で利用可能な複数のエンコード方式の1つです。
ASCIIHexDecodeは、バイナリデータを16進数のASCII表現に変換する可逆エンコードフィルタです。元のバイナリデータの各バイトは、2文字の16進数文字(0-9、A-F)としてエンコードされ、エンコード後のデータサイズは実質的に2倍になります。このフィルタは、デコード時にすべての空白文字を無視するため、エンコードされたデータを柔軟にフォーマットできます。特殊なデータ終端マーカー(大なり記号「>」)は、エンコードされたデータの終了位置を示します。
4バイトを5文字のASCII文字として表現することでより効率的なエンコードを提供するASCIIBase85Decodeとは異なり、ASCIIHexDecodeはよりシンプルですが、スペース効率の低いアプローチを使用します。FlateDecodeのようなフィルタが圧縮に重点を置いているのに対し、ASCIIHexDecodeはサイズの最適化よりもASCII互換性を優先するため、バイナリデータの送信が問題となる環境に適しています。
PDFの生成と操作を行う開発者にとって、ASCIIHexDecodeを理解することは、いくつかの理由で重要です。第一に、古いメールシステムやテキストベースのプロトコルなど、バイナリデータを破損する可能性のあるシステムを通じて、信頼性の高いデータ転送を可能にします。第二に、16進数でエンコードされたデータは人間が読める形式であるため、開発中のPDF構造のデバッグや手動検査が簡素化されます。第三に、一部のレガシーシステムやワークフローでは、16進数エンコードされたストリームが必要とされる、または生成される場合があり、既存のPDF処理パイプラインと統合する際にこのエンコードを処理する必要があります。最後に、最も効率的なエンコード方式ではありませんが、ASCIIHexDecodeは、ストレージの懸念よりもエンコードのシンプルさが重要なシステムに対して、直接的な実装パスを提供します。
ASCIIHexDecodeフィルタは、シンプルなエンコードとデコードのプロセスで動作します。エンコード時には、バイナリデータの各バイトが、大文字または小文字の文字(A-Fまたはa-f)を使用して2桁の16進数表現に変換されます。たとえば、バイト値255は「FF」になり、値10は「0A」になります。空白文字(スペース、タブ、キャリッジリターン、ラインフィード、フォームフィード、およびnull)は、フォーマットの目的でエンコードされたデータストリームの任意の場所に挿入でき、デコード時には無視されます。
デコード時には、フィルタは16進数の桁のペアを読み取り、それらをバイナリバイト値に変換します。フィルタが「>」文字に遭遇すると、これをデータ終端マーカーとして扱い、処理を停止します。データ終端マーカーの前に奇数個の16進数の桁が現れた場合、フィルタは最後のバイトを完成させるために暗黙的に「0」を追加します。この寛容なアプローチは、わずかに不正な形式のデータストリームの処理に役立ちます。
このフィルタは、 ( 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 ) で文書化されているように、/ASCIIHexDecodeの値を持つ/Filterエントリを使用して、PDFストリーム辞書内で指定されます。複数のフィルタがストリームに適用される場合、それらはフィルタ配列にリストされた順序で処理され、ASCIIHexDecodeは通常、最終出力がASCII互換であることを保証するため、最も外側(最後に適用される)フィルタとして現れます。
- ASCIIBase85Decode – 4バイトを5文字として表現する、よりスペース効率の高いASCIIエンコードフィルタ
- FlateDecode – zlib/deflateアルゴリズムに基づく圧縮フィルタで、ASCIIエンコードフィルタと共に、またはその代わりに一般的に使用される
- Stream Dictionary – フィルタ仕様とエンコードされたデータを含むPDFオブジェクト構造
- Filter – エンコード、デコード、または圧縮の目的でPDFストリームデータに適用される処理アルゴリズム
- Binary Data – 特定の送信チャネルでエンコードが必要な非ASCII値を含む可能性のある生のバイトシーケンス
- (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
