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

FillEvenOddRule

FillEvenOddRuleは、Apache PDFBox Java APIのクラスで、PDFグラフィックスのレンダリング時にパスのどの領域を塗りつぶすかを決定するための偶奇規則(even-odd winding rule)を表します。

キーワード: fillevenoddrule, FillEvenOddRule

概要

FillEvenOddRuleは、Apache PDFBox Java APIのクラスで、PDFグラフィックスのレンダリング時にパスのどの領域を塗りつぶすかを決定するための偶奇規則(even-odd winding rule)を表します。この規則は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 ) で定義されている2つの塗りつぶし方法の1つであり、複雑な形状や重なり合うパスを処理する際に、非ゼロワインディング規則の代替手段を提供します。偶奇規則は、自己交差する境界や複数のネストされた輪郭を含むパスを扱う際に特に有用です。

定義

FillEvenOddRuleは、Apache PDFBox内の具象実装クラスで、パス塗りつぶし操作のための偶奇ワインディング数規則をカプセル化します。PDFグラフィックスでは、パスが描画される際、レンダラーはパスで囲まれた領域のどの部分を色で塗りつぶすべきかを決定する必要があります。偶奇規則は、任意の点から無限遠まで概念的に光線を引き、その光線が交差するパスセグメントの数を数えることでこれを実現します。カウントが奇数の場合、その点は塗りつぶし領域の内側にあり、偶数の場合は外側にあります。

これは、パスセグメントの方向を考慮して塗りつぶし領域を決定する代替の非ゼロワインディング規則(別のPDFBoxクラスで表される)とは異なります。偶奇規則はよりシンプルで方向に依存しないため、穴のある形状や複雑な重なり合う幾何学図形に対して特に予測可能です。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 ) では、これらの塗りつぶし規則はベクターグラフィックス、フォームフィールド、さらにはアクセシブルコンテンツレンダリングの一部が最終文書でどのように表示されるかに影響を与える基本的な操作です。

重要性

PDF生成や操作を行う開発者にとって、塗りつぶし規則を理解し正しく実装することは、正確なグラフィックレンダリングに不可欠です。FillEvenOddRuleクラスが重要なのは、生成されたPDFで図形がどのように表示されるかに直接影響するためです。誤った塗りつぶし規則を選択すると、塗りつぶされた図形に予期しない穴が現れたり、中空の図形が塗りつぶされて表示されたりする可能性があります。

PDF/UA ( 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コンテンツストリームで指定された塗りつぶし規則を正しく解釈して、元の視覚的外観を忠実に再現または変換する必要があります。これは、PDFから画像への変換、PDF編集アプリケーション、文書検証ツールなどのタスクに不可欠です。

仕組み

Apache PDFBoxのFillEvenOddRuleクラスは、WindingRuleインターフェースを実装し、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 ) で定義されている偶奇塗りつぶしアルゴリズムのロジックを提供します。PDFBoxのレンダリングエンジンが偶奇規則でマークされたパス塗りつぶし操作(通常、PDFコンテンツストリームの「f*」または「B*」演算子で示される)に遭遇すると、このクラスをインスタンス化または参照して塗りつぶし動作を決定します。

このアルゴリズムは、グラフィックス空間内の各点を、塗りつぶし領域の内側または外側にある可能性があるものとして扱います。任意の点について、任意の方向に無限遠まで想像上の光線を延長します。レンダラーは、この光線がパスセグメントと交差する回数を数えます。各交差は内側/外側の状態を切り替えます。外側(偶数カウントのゼロ)から始まり、最初の交差で内側(奇数カウント)になり、2回目の交差で再び外側(偶数カウント)になる、という具合です。

Apache PDFBoxのコードでは、開発者は通常、描画操作のためにPDPageContentStreamオブジェクトを扱う際や、PDFGraphicsStreamEngineでカスタムレンダリングロジックを実装する際にFillEvenOddRuleに遭遇します。このクラスはJavaのGraphics2Dレンダリングシステムと統合されており、PDFBoxがPDF固有のセマンティクスを維持しながらJavaの組み込みパス塗りつぶし機能を活用できるようにします。

Tagged PDFコンテンツ ( Citation: , (). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) を作成する際、塗りつぶし規則の選択は論理構造と調整する必要があり、グラフィック要素が視覚的に正確であり、文書のアクセシビリティツリーで適切に表現されることを保証します。

関連用語

  • NonzeroWindingRule – パスの方向を考慮して塗りつぶし領域を決定する代替の塗りつぶし規則で、自己交差パスに対して異なる結果を生成します
  • PDPageContentStream – Apache PDFBoxの主要クラスで、塗りつぶし規則を使用するパスを含むPDFページへのコンテンツ追加に使用されます
  • Path Painting Operators – パスをどのように線描画および塗りつぶすべきかを指定するPDFコンテンツストリームコマンド(「f*」、「B*」、「b*」など)
  • Graphics State – PDFグラフィックス演算子がコンテンツをレンダリングする方法を制御するパラメータの集合で、アクティブな塗りつぶし規則を含みます
  • Clipping Path – レンダリングを特定の領域に制限するパスで、クリッピング領域を決定するために偶奇規則または非ゼロワインディング規則を使用することもできます

出典

(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
PDF Association (2023)
(). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
(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