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

SetFlatness

SetFlatnessは、PDFドキュメント内の曲線パスのレンダリングを制御するApache PDFBox APIクラスです。

キーワード: setflatness, SetFlatness

概要

SetFlatnessは、PDFドキュメント内の曲線パスのレンダリングを制御するApache PDFBox APIクラスです。このクラスは平坦度許容値パラメータを設定し、数学的に完全な曲線とその近似直線セグメントとの間の最大距離を指定することで、曲線の滑らかさを決定します。平坦度設定は、 ( 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 ) で定義されているように、レンダリングされるパスの視覚的品質とファイルサイズに直接影響します。

定義

SetFlatnessは、Apache PDFBoxのグラフィックス状態オペレータークラスで、開発者がPDFのグラフィックスレンダリングにおける平坦度許容値をプログラム的に設定できるようにします。平坦度の値は0から100の間の数値で、真の曲線とその線形近似との間で許容される最大距離(デバイスピクセル単位)を定義します。平坦度の値が0の場合、レンダリングエンジンにデバイスのデフォルト平坦度を使用するよう指示し、値が大きくなるほど曲線の近似は角張ったものになります。このオペレーターは、ベジエ曲線やその他の曲線パス要素がどのようにラスタライズまたは出力デバイス上に表示されるかに影響します。パスのエッジの外観に影響するストローク幅やラインキャップ設定とは異なり、平坦度はレンダリングプロセス中の曲線近似の精度を特に制御します。

重要性

SetFlatnessを理解し適切に実装することは、PDFレンダリングのパフォーマンスと視覚的品質のバランスを取る必要がある開発者にとって非常に重要です。低い平坦度の値(0に近い値)は、より滑らかで視覚的に正確な曲線を生成しますが、より多くの計算処理を必要とし、特にリソースが限られたデバイスではレンダリング速度に影響を与える可能性があります。高い平坦度の値はレンダリングパフォーマンスを向上させますが、特にドキュメントがズームされたり高解像度で印刷されたりする場合、目立つジャギーのある曲線を生成する可能性があります。これは、 ( 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生成または操作ツールを作成する開発者は、アプリケーションがパフォーマンス要件と品質期待の両方を満たすドキュメントを生成できるよう、平坦度設定を考慮する必要があります。

仕組み

PDFレンダリングエンジンがベジエパスセグメントによって定義された曲線に遭遇すると、これらの数学的曲線を表示可能なピクセルまたはプリンタードットに変換する必要があります。平坦度パラメータは、許容可能な許容しきい値を確立することで、この変換プロセスをガイドします。レンダリングエンジンは各曲線セグメントを再帰的に細分化し、曲線上の任意の点からその弦(セグメントの端点を結ぶ直線)までの最大距離が平坦度の値を超えるかどうかをチェックします。距離が許容範囲内であれば、エンジンは直線をレンダリングします。そうでなければ、許容範囲を満たすまで細分化を続けます。Apache PDFBoxでは、開発者は特定の数値でSetFlatnessをインスタンス化し、コンテンツストリームまたはグラフィックス状態に追加してこの動作を制御します。平坦度設定は、別のSetFlatness操作によって変更されるか、グラフィックス状態スタック操作によってリセットされるまで、グラフィックス状態の一部として保持されます。 ( 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プロセッサは平坦度の値を尊重する必要がありますが、実際の実装の詳細は異なるレンダリングエンジンや出力デバイスによって異なる場合があります。

関連用語

  • Graphics State(グラフィックス状態) – PDF内でグラフィカル要素がどのようにレンダリングされるかを制御するパラメータの集合
  • Content Stream(コンテンツストリーム) – PDFページの視覚的外観を記述するオペレーターとオペランドのシーケンス
  • Bézier Curve(ベジエ曲線) – PDFパス構築やベクターグラフィックスで頻繁に使用されるパラメトリック曲線
  • PDPageContentStream – PDFページにコンテンツストリームを書き込むために使用されるApache PDFBoxクラス
  • Path Object(パスオブジェクト) – 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