Conversion decompression
変換時解凍(Conversion decompression)は、PDF文書のフォーマット変換または処理操作中に、フィルタ処理されたコンテンツストリームを解凍するプロセスです。
変換時解凍(Conversion decompression)は、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解凍とは異なり、変換時解凍は、開発者がHTMLへの変換、テキスト抽出、文書構造の変形などの目的で生のコンテンツデータにアクセスする必要がある場合に発生します。
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 ) では、FlateDecode、LZWDecode、DCTDecodeなど、複数のストリームフィルタタイプが定義されています。変換操作中は、基盤となるコンテンツオペレータ、テキスト文字列、画像データにアクセスするために、これらの圧縮されたストリームをデコードする必要があります。これは、表示可能なコンテンツのみが選択的に解凍される閲覧時のオンザフライ解凍とは異なります。
PDF変換ワークフローを扱う開発者にとって、変換時解凍を理解することは以下の理由から重要です。
パフォーマンスの考慮事項: 解凍操作は、特に複数の圧縮レイヤーを持つ大きな文書では、計算負荷が高くなる可能性があります。開発者は変換パイプラインを構築する際に、処理時間とメモリ要件を考慮する必要があります。
データの整合性: 適切な解凍により、コンテンツが正確に抽出・変換されることが保証されます。圧縮フィルタの不適切な処理は、破損した出力、コンテンツの欠落、変換の失敗を引き起こす可能性があります。
アクセシビリティへの準拠: PDFをアクセシブルなフォーマットに変換する際や、Tagged PDFを処理する際 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) 、アクセシビリティ情報を含む構造ツリーとコンテンツストリームにアクセスするために解凍が必要です。これはPDF/UAへの準拠 ( 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をHTML、XML、またはその他の構造化フォーマットに変換する場合、PDFのコンテンツ構造をターゲットフォーマットの要件に正確にマッピングするために完全な解凍が必要です。
変換時解凍プロセスは、体系的なアプローチに従います。
1. ストリームの識別: 変換プロセスはまず、解凍が必要なPDF内のすべてのコンテンツストリームを識別します。これらのストリームは、使用されている圧縮方法を指定する/Filterエントリをストリームディクショナリに含んでいます。
2. フィルタチェーンの処理: 一部のストリームは、順次適用される複数のフィルタを使用している場合があります。解凍プロセスは、 ( 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 ) で指定されているように、元のデータを復元するために逆フィルタを逆順に適用する必要があります。
3. デコードパラメータの適用: 特定のフィルタは、解凍の実行方法を指定するデコードパラメータを必要とします。コンバータは、これらのパラメータを解析し、解凍中に正しく適用する必要があります。
4. バッファ管理: 解凍されたデータは通常、圧縮されたデータよりも大幅に多くのメモリを必要とします。効果的な変換実装では、特に大きな文書の場合、メモリ消費を管理するためにストリーミングまたはチャンク化された解凍を使用します。
5. コンテンツの再構築: 解凍後、生のコンテンツストリームデータが解析可能になります。Tagged PDFの場合、これには構造要素やマークされたコンテンツシーケンスを参照するコンテンツオペレータへのアクセスが含まれます。
- Stream filter(ストリームフィルタ) – ファイルサイズを削減するためにPDFストリームオブジェクトに適用される圧縮またはエンコード方法
- Content stream(コンテンツストリーム) – テキスト、グラフィックス、画像などのページコンテンツを記述するPDFオペレータとオペランドのシーケンス
- Flate compression(Flate圧縮) – FlateDecodeフィルタで使用される、zlib/deflateアルゴリズムに基づく最も一般的なPDF圧縮方法
- Tagged PDF – アクセシビリティのためにコンテンツの論理的な構成を記述する構造情報を含むPDF文書
- Decode parameters(デコードパラメータ) – フィルタ処理されたストリームを正しくデコードするために必要な追加情報を指定するディクショナリエントリ
- (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 Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (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
