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

CloseFillNonZeroAndStrokePath

CloseFillNonZeroAndStrokePathは、複雑なグラフィックスをレンダリングするために使用される特定のPDFパス描画演算子を表すApache PDFBox APIクラスです。

キーワード: closefillnonzeroandstrokepath, CloseFillNonZeroAndStrokePath

概要

CloseFillNonZeroAndStrokePathは、複雑なグラフィックスをレンダリングするために使用される特定のPDFパス描画演算子を表すApache PDFBox APIクラスです。この演算子は、非ゼロワインディング数規則を使用したパスの塗りつぶしと、パス境界のストローク(輪郭描画)という2つの操作を組み合わせたものです。これは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 ) で定義されている「b」演算子に対応しており、内部の塗りつぶしと明確な輪郭の両方を持つ視覚的に区別される図形を作成するために不可欠です。

定義

CloseFillNonZeroAndStrokePathは、Apache PDFBoxライブラリ内のJavaクラスであり、PDFの「b」演算子の機能をカプセル化しています。この演算子は、3つの異なる操作を順次実行します。まず、現在の点から開始点まで直線を引くことで現在のパスを閉じ、次に非ゼロワインディング数規則を使用して囲まれた領域を塗りつぶし、最後に現在のストロークパラメータを使用してパスの輪郭をストロークします。

このクラスは、類似のパス演算子といくつかの点で異なります。描画前にパスを閉じないFillNonZeroAndStrokePath(「B」演算子)とは異なり、CloseFillNonZeroAndStrokePathは開いているサブパスを自動的に閉じます。また、塗りつぶしに偶奇規則を使用する演算子とも異なり、パスの「内側」に該当する領域を判定するために非ゼロワインディング数規則を明示的に採用します。この違いは、自己交差するパスや、ワインディング規則がレンダリング結果に大きく影響する複雑な図形を扱う際に特に重要です。

重要性

PDF生成や操作を行う開発者にとって、CloseFillNonZeroAndStrokePathを理解することは、正確な視覚的外観を持つプロフェッショナル品質のグラフィックスを作成するために不可欠です。この演算子により、塗りつぶされた内部と明確な境界線の両方を持つ図形を作成できます。これは、技術図面、フォームフィールド、ボタン、装飾要素において一般的な要件です。

異なる塗りつぶし規則の選択は、重なり合うパスや自己交差するパスのレンダリング方法に影響し、最終的なPDFドキュメントの視覚的精度に直接影響します。既存の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ビューア間で一貫してレンダリングされ、意図した視覚構造が維持されます。

仕組み

CloseFillNonZeroAndStrokePath演算子は、現在のグラフィックス状態に対して一連の操作を実行することで動作します。まず、現在のパスが開いている場合、演算子は現在の点からサブパスの初期点まで直線セグメントを追加し、実質的にそれを閉じます。この閉鎖により、パスが完全な閉じられた図形を形成することが保証されます。

次に、演算子は非ゼロワインディング数規則を適用して、どの領域を塗りつぶすべきかを判定します。この規則は、任意の点から無限遠に光線を投射し、パスとの交差をカウントすることで機能します。左から右への交差は1を加算し、右から左への交差は1を減算します。最終的なカウントが非ゼロの場合、その点はパスの内側にあると見なされ、現在の塗りつぶし色で塗りつぶされます。

最後に、演算子はグラフィックス状態で定義されている現在のストローク色、線幅、線端スタイル、線結合スタイル、破線パターンを使用してパスの輪郭をストロークします。ストローク操作は、パスの数学的境界に沿って描画し、視覚的な輪郭を作成します。 ( 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 ) で定義されているように、塗りつぶしとストロークの両方の操作は現在のパスを消費します。つまり、演算子の完了後にグラフィックス状態からクリアされます。

Apache PDFBoxでは、PDFコンテンツストリームパーサーが「b」演算子に遭遇すると、CloseFillNonZeroAndStrokePathクラスをインスタンス化し、その処理メソッドを呼び出して、これらの操作をページのグラフィックスコンテキストに適用します。

関連用語

  • Nonzero Winding Number Rule(非ゼロワインディング数規則) – 塗りつぶし操作においてパスの内側にある点を判定するために使用される数学的アルゴリズム
  • Path Painting Operators(パス描画演算子) – 塗りつぶし、ストローク、クリッピング操作を含む、パスのレンダリング方法を制御するPDF演算子
  • Graphics State(グラフィックス状態) – PDFにおけるグラフィカル要素の外観を制御するパラメータの集合
  • Content Stream(コンテンツストリーム) – ページコンテンツの外観を定義するPDF演算子とオペランドのシーケンス
  • Stroke Parameters(ストロークパラメータ) – 線幅、線端スタイル、線結合スタイルを含む、パスの輪郭の外観を制御する属性

出典

(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