Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

COSStandardOutputStream

COSStandardOutputStreamは、Apache PDFBoxにおける低レベルのJavaクラスで、Carousel Object Structure(COS)レイヤーに対する書き込み操作を提供します。

キーワード: cosstandardoutputstream, COSStandardOutputStream

概要

COSStandardOutputStreamは、Apache PDFBoxにおける低レベルのJavaクラスで、Carousel Object Structure(COS)レイヤーに対する書き込み操作を提供します。このクラスは、辞書、配列、ストリーム、その他の基本構造を含むPDFオブジェクトを、PDF仕様 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で要求される生のバイト形式にシリアル化する処理を担当します。PDFBoxのオブジェクト指向Java APIと実際のバイナリPDFファイル形式を結ぶ重要な橋渡し役として機能します。

定義

COSStandardOutputStreamは、Apache PDFBoxのCOSパッケージ内の出力ストリーム実装で、PDF構文要素を基盤となる出力先に書き込みます。COSレイヤーはPDFBoxにおける最も低い抽象化レベルを表し、 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されたオブジェクト構造に直接マッピングされます。この仕様は、整数、文字列、名前、配列、辞書、ストリームなどのデータ型をPDFファイルがどのようにエンコードするかを規定しています。

このクラスは、標準的なJavaのOutputStream実装とは異なり、PDF固有のフォーマット規則を組み込んでいます。例えば、適切な改行規則、相互参照テーブル用のバイトオフセット追跡、PDFの特定の文字エンコーディング要件の処理などです。ページやアノテーションなどのドキュメントレベルの概念を扱う高レベルのPDFBoxクラスとは異なり、COSStandardOutputStreamはプリミティブなオブジェクトレベルで動作し、有効なPDF構文を形成する実際のバイトを書き込みます。

重要性

Apache PDFBoxを使用する開発者にとって、COSStandardOutputStreamの理解は、出力フォーマットの直接的な制御を必要とする低レベルのPDF操作を実行する際に不可欠です。これは、カスタムPDF機能の実装、ファイルサイズの最適化、またはPDF/UA ( Citation: N.A., (N.A.). (). 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作成タスクはPDFBoxの高レベルAPIを通じて実現できますが、カスタム暗号化、特殊な圧縮スキーム、またはオブジェクトのシリアル化に対する細かい制御を伴う状況では、COSクラスを直接使用する必要がある場合があります。この出力ストリームに関する知識は、JavaオブジェクトがどのようにPDFファイル構造に変換されるかを理解することでPDF生成の問題をデバッグするのに役立ち、オブジェクト全体をメモリに保持せずに大きなコンテンツをストリーミングするなどの高度な最適化を可能にします。

仕組み

COSStandardOutputStreamは、COSオブジェクトを受け取り、それらをPDF構文表現に変換することで動作します。COSObjectCOSDictionary、COSArray、COSStreamなど)を書き込む必要がある場合、ストリームはPDF仕様に従って区切り文字、空白、改行を含む適切なフォーマットを処理します。

このクラスは、現在のバイト位置などの内部状態を保持します。これは、PDFリーダーがファイル内のオブジェクトを見つけることを可能にする相互参照テーブルを生成するために不可欠です。特定のPDFデータ型を書き込むためのメソッドを実装しています。整数はASCII十進表現として書き込まれ、文字列は型に応じて括弧または山括弧で囲まれ、名前はスラッシュのプレフィックスと特殊文字の適切なエスケープと共に書き込まれます。

ストリームオブジェクトの場合、COSStandardOutputStreamはフィルター実装と連携して、エンコードされたデータをstream/endstreamキーワードの間に書き込む前に圧縮(FlateやLZWなど)を適用します。このクラスは、バイナリデータの適切な処理、コメントマーカー、プラットフォームによって異なるがPDF準拠のために正規化する必要がある行末シーケンスなど、すべての出力がPDF構文規則に準拠することを保証します。

関連用語

  • COSObject – PDFBoxのCarousel Object Structureレイヤーにおけるすべてのオブジェクトの基底クラス
  • PDDocument – 内部でCOSオブジェクトを使用する、PDF文書全体を表すPDFBoxの高レベルクラス
  • COSDictionary – PDF辞書構造を表すCOSオブジェクトで、一般的にCOSStandardOutputStreamを使用して書き込まれる
  • PDFWriter – 出力ストリームを使用して完全なPDF文書をシリアル化する、より高レベルのPDFBoxコンポーネント
  • Cross-reference table(相互参照テーブル)– オブジェクトの位置をインデックス化するPDF構造で、出力ストリームからの正確なバイト位置追跡を必要とする

出典

(N.A.) (2020)
(N.A.). (). 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.). (). 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