SetFontAndSize
`SetFontAndSize`は、Apache PDFBoxにおいてPDFコンテンツストリーム内の現在のフォントとフォントサイズを設定するためのオペレーターです。
SetFontAndSizeは、Apache PDFBoxにおいてPDFコンテンツストリーム内の現在のフォントとフォントサイズを設定するためのオペレーターです。このオペレーターは、PDF仕様で定義されているTfオペレーター
(
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のテキストコンテンツを扱う際、開発者は任意のテキスト表示操作の前にこのオペレーターを呼び出し、後続のテキスト出力に使用する書体とサイズを確立する必要があります。
SetFontAndSizeは、Apache PDFBoxにおけるコンテンツストリームオペレーターの実装であり、2つの重要なテキスト状態パラメーター、すなわちフォントリソース(現在のリソースディクショナリのFontサブディクショナリからそのリソース名で識別される)とテキスト空間単位でのフォントサイズを設定します。通常のアプリケーション開発におけるフォント選択がフォントファミリー名で参照されるのとは異なり、PDFフォントはページまたはform XObjectリソースで定義されたフォントディクショナリにマッピングされるリソース名を通じて参照される必要があります
(
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つのオペランドを取ります:フォントリソースを識別するnameオブジェクトと、フォントサイズを指定する数値です。SetFontAndSizeオペレーターは単純なフォントスタイリングコマンドとは異なり、グリフのレンダリング方法に影響を与える完全な変換マトリックスパラメーターを確立します。これには、コンテンツストリーム全体に適用される座標空間変換とは別個のスケールが含まれます。
Apache PDFBoxを使用してPDF生成または操作を行う開発者にとって、SetFontAndSizeを正しく使用することは、有効で読みやすいPDF文書を作成するための基本です。テキスト操作の前にフォントとサイズを適切に設定しないと、テキストのレンダリングが失敗するか、未定義の結果を生じます。このオペレーターは、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を作成する際に特に重要です。これらの標準では、支援技術が文書コンテンツを正しく解釈するために、適切なフォント埋め込みとテキスト表現が求められます。既存のPDFからテキストを抽出または解析する際、このオペレーターを理解することで、開発者は文書のコンテンツストリーム全体にわたるフォントの変更を追跡できます。これは、書式の忠実性を維持し、文書構造を理解するために不可欠です。不適切なフォント処理は、テキスト抽出の問題、文字エンコーディングの問題、およびアクセシビリティ準拠の失敗につながる可能性があります。
SetFontAndSizeオペレーターは、テキストフォント(Tf)とテキストフォントサイズ(Tfs)パラメーターを設定することで、グラフィックス状態を変更します。Apache PDFBoxがコンテンツストリーム内でこのオペレーターに遭遇するか生成すると、まず現在のリソースディクショナリに対してフォント名を解決し、対応するフォントディクショナリを見つけます。フォントディクショナリには、フォントプログラム、エンコーディング情報、およびグリフメトリクスが含まれています。フォントサイズパラメーターはテキスト空間単位(通常はポイント)で表され、グリフ座標をテキスト空間に変換するフォントマトリックスのスケールファクターを確立します。Tagged PDF文書
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
では、フォント選択は論理構造と連携して機能し、テキストコンテンツが意味的な意義と適切に関連付けられ、支援技術によって読み取り順序でアクセスできることを保証します。このオペレーターは、テキストオブジェクト内(BTとETオペレーターの間)で呼び出されるか、テキスト表示操作の前にグラフィックス状態を確立する一部として呼び出される必要があります。Apache PDFBoxは、PDPageContentStreamクラスにこの低レベルオペレーターをラップするメソッドを提供しており、開発者はオペレーター構文を手動で構築することなく、PDFontオブジェクトとサイズを指定できます。
- Content Stream(コンテンツストリーム) – ページまたはform XObjectの外観を記述するPDFオペレーターとオペランドのシーケンス
- Font Dictionary(フォントディクショナリ) – フォントの特性、エンコーディング、およびグリフデータを定義するPDFディクショナリオブジェクト
- Text State Parameters(テキスト状態パラメーター) – テキスト操作に固有のグラフィックス状態パラメーター。フォント、サイズ、レンダリングモード、スペーシングなどを含む
- Resource Dictionary(リソースディクショナリ) – コンテンツストリームオペレーターによって参照される名前付きリソース(フォント、画像、パターン)を含むディクショナリ
- Text Object(テキストオブジェクト) – BTとETで囲まれたオペレーターのシーケンスで、テキスト表示操作をテキスト状態の変更とともにグループ化する
- (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
