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

PDPageContentStream.AppendMode

PDPageContentStream.AppendModeは、Apache PDFBoxライブラリの列挙型であり、既存のPDFページのコンテンツストリームにコンテンツを追加する方法を決定します。

キーワード: pdpagecontentstream.appendmode, PDPageContentStream.AppendMode

概要

PDPageContentStream.AppendModeは、Apache PDFBoxライブラリの列挙型であり、既存の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 ) で定義されているPDF文書を変更する際、開発者は新しいコンテンツを既存のコンテンツの前に挿入するか、後に追加するか、または完全に置き換えるかを指定する必要があります。このモード選択は、テキスト、グラフィックス、注釈などのPDF要素の視覚的なレイヤー構造を保持または変更する上で重要です。

定義

PDPageContentStream.AppendModeは、Apache PDFBoxの高レベルPDModel API内のJava列挙型であり、コンテンツストリーム操作のための3つの異なるモードを提供します:APPEND、PREPEND、OVERWRITEです。APPENDモードは、既存のコンテンツストリームの後に新しいコンテンツ演算子を追加し、新しい要素が既存のコンテンツの上にレンダリングされるようにします。PREPENDモードは、既存のコンテンツの前に新しいコンテンツ演算子を挿入し、レンダリング順序において新しい要素を既存のコンテンツの背面に配置します。OVERWRITEモードは、既存のコンテンツストリーム全体を新しいコンテンツで置き換え、新しい要素を追加する前にページを効果的にクリアします。

これは、開発者がコンテンツストリーム演算子を直接操作し、バイトレベルの構造を手動で管理する必要がある低レベルのコンテンツストリーム操作とは異なります。AppendMode列挙型はこの複雑さを抽象化し、PDF仕様への準拠を維持しながら、一般的なコンテンツ変更パターンに対して開発者にとって使いやすいインターフェースを提供します。

重要性

AppendModeを理解し正しく使用することは、既存のPDF文書をその視覚的な外観や構造を乱すことなく変更する必要がある開発者にとって不可欠です。誤ったモードを選択すると、透かしがコンテンツの上ではなく背面に表示されたり、ヘッダーとフッターが既存のテキストを覆い隠したり、 ( 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 ) に基づくアクセシビリティ準拠に必要なTagged PDF要素などの慎重に構造化されたコンテンツを誤って破壊したりする可能性があります。

既存のPDFに署名、スタンプ、注釈、またはアクセシビリティの改善を追加するアプリケーションでは、AppendModeの選択が出力の品質と正確性に直接影響します。背景の透かしにPREPENDモードを使用すると、重要なコンテンツを覆わないようにできますが、APPENDモードは可視のスタンプや墨消しの追加に適しています。OVERWRITEモードは、ページの寸法とメタデータを保持しながらページコンテンツを完全に再生成する場合に有用です。

仕組み

特定のAppendModeでPDPageContentStreamがインスタンス化されると、PDFBoxはページの既存のコンテンツストリームデータをどのように処理するかを決定します。APPENDモードの場合、PDFBoxは既存のコンテンツストリームを取得して保持し、既存の演算子の後に新しいコンテンツ演算子を追加するようにストリームライターを設定します。既存のコンテンツがPDF表示時に最初にレンダリングされ、その後に新しいコンテンツが続くことで、視覚的なレイヤー効果が生まれます。

PREPENDモードでは、PDFBoxは既存のコンテンツストリームを読み取ってバッファに格納し、新しいコンテンツ演算子を最初に書き込み、その後に元の演算子を続けます。これにより、新しい要素が既存のコンテンツの視覚的な背面に表示されることが保証されます。PDFレンダリングエンジンは演算子を順次処理するため、コンテンツストリーム内の早い演算子が最初に描画され、後の演算子によって上書きされる可能性があります。

OVERWRITEモードは、既存のコンテンツストリームを完全に破棄し、新しく開始します。これは、完全なページコンテンツを再生成する際に最も効率的なモードであり、複数回の変更による冗長なコンテンツの蓄積に関する潜在的な問題を排除します。ただし、 ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) に準拠したTagged PDF構造を扱う場合は慎重な検討が必要です。既存のコンテンツを破壊すると、文書カタログで定義されているアクセシビリティ機能や文書構造要素が破損する可能性があるためです。

モードは、PDPageContentStreamオブジェクトを作成する際に指定する必要があり、後から変更することはできないため、開発者はストリーム操作を開始する前にコンテンツ変更戦略を計画する必要があります。

関連用語

  • Content Stream(コンテンツストリーム) – ページ上のコンテンツの外観を記述するPDF演算子とオペランドのシーケンス
  • PDPageContentStream – PDFページにコンテンツストリーム演算子を書き込むためのApache PDFBoxクラス
  • PDPage – 関連するリソースとコンテンツを持つPDF文書内の単一ページを表す
  • PDF Operators(PDF演算子) – グラフィックス状態、テキストレンダリング、パス構築を制御するPDFコンテンツストリーム内の低レベルコマンド
  • Tagged PDF –アクセシビリティとコンテンツの再利用を可能にする構造情報を持つ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
PDF Association (2023)
(). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
(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