FillEvenOddAndStrokePath
FillEvenOddAndStrokePathは、Apache PDFBox APIのクラスであり、2つのPDFグラフィックス操作を1つのコマンドに結合します。
FillEvenOddAndStrokePathは、Apache PDFBox APIのクラスであり、2つのPDFグラフィックス操作を1つのコマンドに結合します。具体的には、偶奇規則(even-odd rule)を使用したパスの塗りつぶしと、同じパスのストローク(輪郭描画)を行います。このクラスは、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*」オペレータに対応しており、開発者は1回の操作で、塗りつぶされた内部と可視的な輪郭の両方を持つ複雑な図形をレンダリングできます。偶奇規則は、パスのどの領域が「内側」と見なされ塗りつぶされるべきかを決定するもので、特に自己交差するセグメントや複数のサブパスを持つパスで有用です。
FillEvenOddAndStrokePathは、Apache PDFBoxのコンテンツストリーム処理フレームワーク内の具象実装クラスであり、PDFの「B*」グラフィックスオペレータを表現します。このオペレータは、塗りつぶし領域の決定に非ゼロワインディング規則ではなく偶奇ワインディング規則を使用する点で、標準的な塗りつぶし・ストローク操作とは異なります。偶奇規則は、ある点から無限遠まで仮想的な線を引き、その線がパスセグメントと交差する回数を数えることで機能します。交差回数が奇数の場合、その点はパスの内側にあり、偶数の場合は外側にあると判定されます。これは、パスセグメントの方向を考慮して内部領域を決定する非ゼロワインディング規則を使用するFillNonZeroAndStrokePathとは異なります。このクラスは通常、PDFBoxがコンテンツストリーム内で「B*」オペレータに遭遇したときに、PDFコンテンツストリームの解析中にインスタンス化されます。
PDF生成や操作を行う開発者にとって、FillEvenOddAndStrokePathの理解は、重なり合うまたは自己交差する図形に対して予測可能な塗りつぶし動作を必要とする複雑なグラフィックスをレンダリングする際に不可欠です。偶奇規則は、星形、同心円状の図形、または塗りつぶされた領域と塗りつぶされていない領域を交互に配置したいデザインなど、特定の幾何学的パターンに対してより直感的な結果を提供します。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コンテンツを生成または変更する際の視覚的忠実性を維持するために不可欠です。
Apache PDFBoxのコンテンツストリームプロセッサがPDFコンテンツストリーム内で「B*」オペレータに遭遇すると、FillEvenOddAndStrokePathインスタンスを作成してその操作を処理します。このクラスは、以前のパス構築オペレータ(moveto、lineto、curvetoコマンドなど)によって構築された現在のパスに対して動作します。操作は2つのフェーズで進行します。まず、偶奇規則と現在の塗りつぶし色を使用してパスの内部を塗りつぶし、次に、現在のストローク色、線幅、およびグラフィックス状態で定義されたその他のストロークパラメータを使用してパスの輪郭をストロークします。偶奇判定アルゴリズムは、概念的に線を投射して境界交差を数えることで各点を評価し、ネストされた図形や自己交差する図形が交互に塗りつぶされた領域と塗りつぶされていない領域を生成することを保証します。実行後、 ( 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 ) で指定されているように、現在のパスはグラフィックス状態からクリアされます。このクラスはPDFBoxのオペレータ基底クラスから継承し、ライブラリのグラフィックス状態管理システムと統合して、現在の色空間、変換行列、およびレンダリングパラメータにアクセスします。
- Content Stream(コンテンツストリーム)– ページコンテンツの外観を定義するPDFオペレータとオペランドのシーケンス
- Path Construction Operators(パス構築オペレータ)– 幾何学的パスを定義するmoveto、lineto、curvetoなどのPDFオペレータ
- Winding Rule(ワインディング規則)– 塗りつぶし操作でパスの内側にどの点があるかを決定するアルゴリズム
- Graphics State(グラフィックス状態)– グラフィックスオペレータがコンテンツをレンダリングする方法を制御するパラメータの集合
- 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
