CloseFillEvenOddAndStrokePath
CloseFillEvenOddAndStrokePathは、Apache PDFBox APIのクラスで、現在のパスを閉じる、偶奇規則を使用して塗りつぶす、輪郭を描画するという3つの操作を組み合わせたPDFグラフィックス操作を表します。
CloseFillEvenOddAndStrokePathは、Apache PDFBox APIのクラスで、現在のパスを閉じる、偶奇規則を使用して塗りつぶす、輪郭を描画するという3つの操作を組み合わせた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 ) で定義されている「b*」演算子を実装しており、塗りつぶし領域と描画領域を正確に制御した複雑なグラフィックスのレンダリングに不可欠です。開発者は、単一の操作で洗練された視覚効果を持つPDFコンテンツを効率的に作成できます。
CloseFillEvenOddAndStrokePathは、Apache PDFBoxのコンテンツストリーム処理アーキテクチャ内の具象実装クラスで、PDFの「b*」グラフィックス演算子をカプセル化します。この演算子は、3つの連続した操作をアトミックに実行します。現在の点から開始点まで直線を追加してパスを閉じ、偶奇規則を使用してパスの「内側」となる領域を判定して囲まれた領域を塗りつぶし、現在のグラフィックス状態パラメータに従ってパスの輪郭を描画します。
偶奇規則は、非ゼロワインディング数規則を使用する対応する操作とこの操作を区別します。偶奇規則では、ある点から引いた光線がパスセグメントを奇数回交差する場合、その点はパスの内側にあると見なされます。セグメントの方向は考慮されません。これにより、偶奇規則は、自己交差や複雑にネストされた図形を持つパスに特に有用です。このような場合、非ゼロワインディング規則では予期しない結果が生じる可能性があります。
PDFBoxのアーキテクチャでは、このクラスは基本演算子クラスを拡張しており、既存の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生成または操作を行う開発者にとって、CloseFillEvenOddAndStrokePathは複雑なグラフィックスレンダリングシナリオに対する正確な制御を提供します。この演算子を理解することは、ノックアウト効果を持つロゴ、重複する領域を持つマップ、特定の塗りつぶしパターンを必要とする技術図面など、複雑なベクターグラフィックスを含むPDFを作成する際に重要です。
この演算子が実装する偶奇規則は、アクセシビリティとTagged PDFコンテンツ ( 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ビューアやプラットフォーム間で一貫したレンダリングを保証するためです。アクセシブルなドキュメントを作成する際、塗りつぶしと描画操作を適切に使用することで、視覚的な明瞭性が維持され、支援技術に対してグラフィックスが予測可能にレンダリングされることが保証されます。
この操作は、3つの操作を単一のコマンドに統合することでパフォーマンス上の利点も提供し、PDFコンテンツストリームのサイズを削減し、レンダリングパフォーマンスを向上させる可能性があります。大量の複雑なグラフィックスを生成するアプリケーションでは、個別のクローズ、塗りつぶし、描画コマンドの代わりにこの統合演算子を使用することで、より効率的なPDFファイルを生成できます。
CloseFillEvenOddAndStrokePath演算子は、PDFコンテンツストリーム処理パイプラインの一部として実行されます。PDFレンダラーが「b*」演算子に遭遇したとき(またはPDFBoxがこのクラスのインスタンスを処理するとき)、次の一連の処理を実行します。
まず、現在の点をサブパスの開始点に直線セグメントで接続することで、現在のパスを閉じます。これにより、パスが塗りつぶしに適した閉じた形状を形成することが保証されます。パスがすでに閉じている場合、または切断された点のみで構成されている場合、このステップは効果がありません。
次に、偶奇ワインディング規則を使用して塗りつぶし操作を適用します。レンダラーは座標空間内の各ピクセルまたは点を調べ、光線交差をカウントすることで、その点がパスの内側にあるか外側にあるかを判定します。奇数回の交差は点が内側にあることを意味し、現在の塗りつぶし色が適用されます。偶数回(ゼロを含む)の交差は外側を意味し、塗りつぶされません。
第三に、描画操作がパス境界に沿って、グラフィックス状態の現在の描画色、線幅、線端スタイル、線結合スタイル、破線パターンを使用して描画します。描画は塗りつぶされた領域の上に適用されるため、描画色がエッジに沿って表示されます。
操作全体は、実行時にアクティブな現在の変換マトリックス、クリッピングパス、その他のグラフィックス状態パラメータを尊重します。PDFBoxでは、開発者はコンテンツストリームをプログラムで構築する際にこの演算子のインスタンスを作成できます。また、 ( 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ドキュメントを解析する際にこの演算子に遭遇します。
- パス構築演算子(Path Construction Operators) – PDFグラフィックスでパスを形成する幾何学的形状と曲線を定義するコマンド
- グラフィックス状態(Graphics State) – 色、線スタイル、変換マトリックスなど、グラフィックス操作のレンダリング方法を制御するパラメータの集合
- ワインディング数規則(Winding Number Rule) – パスセグメントの累積方向を使用してパスの内部を判定する代替手法
- コンテンツストリーム(Content Stream) – PDFページの視覚的外観を記述する演算子とオペランドのシーケンス
- 描画操作(Stroke Operation) – 指定された線幅と色でパスの輪郭に沿って描画するプロセス
- (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
- (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
