Enterprise エディション
Common — 詳細リファレンス
このページは、NextPDF\Enterprise\Common 名前空間の詳細リファレンスです。この名前空間は 1 つのパブリックシンボル、BoundingBox 値オブジェクトを提供します。これは、ページ上での解像度非依存な空間配置のための、イミュータブルで正規化された矩形です。Enterprise の Intelligence および Privacy サーフェスは、これをテーブルセルのジオメトリ、エンティティの位置、および墨消しゾーンに利用します。このモジュールは I/O を一切行わず、ドキュメントコンテンツを保持せず、暗号処理にも関与しません。ワークフローのガイダンスについては、まず Common 機能ページ をお読みください。
提供状況とライセンス
「提供状況とライセンス」という見出しのセクションこの機能は NextPDF Enterprise(nextpdf/enterprise)に同梱されており、Enterprise ティアのライセンスエンベロープで有効化されます。その権利を持たないデプロイメントでは、この機能のクラスは読み込まれません。エディションを比較してライセンスを取得。
プリミティブ自体はライセンスゲートを行いません。ゲートは、これを利用する Enterprise サーフェスで行われます。このクラスには Core ティアや Pro ティアの同等品はありません。nextpdf/enterprise パッケージにのみ同梱されており、Core のジオメトリ型を複製または置き換えるものではありません。
パブリック API サーフェス
「パブリック API サーフェス」という見出しのセクション| シンボル | パラメーター | デフォルトの挙動 | 戻り値 | 送出または失敗の条件 | 備考 |
|---|---|---|---|---|---|
BoundingBox::__construct | float $x、float $y、float $width、float $height | 各値を [0.0, 1.0] に対して検証し、その後に両方のエッジ合計を検証 | BoundingBox | 値が範囲外、またはエッジ合計が 1.0 + 1e-9 を超える場合に InvalidArgumentException | 4 つの値すべてが public readonly プロパティに |
BoundingBox::area | なし | width に height を乗算 | float | 宣言なし | 退化したボックスには 0.0 を返却 |
BoundingBox::contains | self $other | $other がこのボックスの完全に内側にあるかを判定 | bool | 宣言なし | 右辺と下辺は +1e-9 を許容。左辺と上辺は厳密に比較 |
BoundingBox::overlaps | self $other | 厳密な矩形の交差を判定 | bool | 宣言なし | いずれかの側が面積ゼロのオペランドの場合は false を返却 |
エントリーポイントのシグネチャ
「エントリーポイントのシグネチャ」という見出しのセクションfinal readonly class BoundingBox{ public function __construct( public float $x, public float $y, public float $width, public float $height, )
public function area(): float
public function contains(self $other): bool
public function overlaps(self $other): bool}挙動コントラクト
「挙動コントラクト」という見出しのセクション座標モデル
「座標モデル」という見出しのセクション- 4 つの値はすべて、ページ寸法に対する割合であり、
[0.0, 1.0]の範囲に正規化されています。 xはボックスの左辺を、yは上辺を位置づけます。x + widthとy + heightは右辺と下辺を画定します。- 正規化により、すべての操作が解像度に依存しなくなります。同じボックスは、あらゆるレンダリングサイズや DPI において同じページ領域を指し示します。
- コンストラクターは唯一の検証ポイントです。
[0.0, 1.0]の範囲外の座標はInvalidArgumentExceptionを発生させ、メッセージには問題のあるコンポーネントと受け取った値が示されます。 1.0 + 1e-9を超えるエッジ合計はInvalidArgumentExceptionを発生させ、メッセージには両方のオペランドとその合計が報告されます。1e-9の許容範囲は、上流の正規化演算による浮動小数点の丸めを吸収します。- 構築されたインスタンスはイミュータブルです。このクラスは
final readonlyであるため、プロパティへの書き込みは PHP のErrorで失敗し、クラスを拡張することはできません。
area()はwidth * heightを返します。副作用のない純粋な計算です。contains()は、他方のボックスがこのボックスの完全に内側にある場合にtrueを返します。右辺と下辺の比較は+1e-9の許容範囲を持ち、左辺と上辺の比較は厳密です。すべてのボックスは自身を包含し、面積ゼロのボックスも包含され得ます。overlaps()は、厳密な矩形の交差でtrueを返します。4 つのエッジ比較はすべて厳密であり、許容範囲はありません。いずれかのオペランドの面積がゼロの場合、結果はfalseになります。- したがって、包含はオーバーラップを意味しません。他のボックスの内側にある退化したボックスは包含されますが、決してオーバーラップしません。
- いずれのメソッドも I/O、永続化、ネットワークアクセス、ロギングを行わず、ドキュメントコンテンツや個人データを保持しません。このサーフェスにオペレーターが所有するリソースはありません。
コンシューマー
「コンシューマー」という見出しのセクションEnterprise モジュールは、モジュールごとにジオメトリを定義するのではなく、このプリミティブを共有します。Intelligence では、TableExtractor の出力が TableCell と KeyValuePair の値にこれを持ちます。Privacy では、PiiEntity、RedactionFinding、ZoneRedaction がこれでコンテンツの位置を特定し、RedactionEngine がそれらの位置を利用します。これらのサーフェスのコントラクトは、それぞれのリファレンスページに文書化されています。
エッジケースと障害モード
「エッジケースと障害モード」という見出しのセクション- 範囲外のコンポーネント。 4 つの値のいずれかが
0.0未満または1.0を超える場合、構築時にInvalidArgumentExceptionを発生させます。INFと-INFは同じガードによって拒否されます。 - エッジ合計のオーバーフロー。
x + widthまたはy + heightが1.0 + 1e-9を超える場合、InvalidArgumentExceptionを発生させます。1e-9の許容範囲内の合計は正常に構築されます。 NAN入力。 範囲ガードは順序比較を使用し、NANとの順序比較はすべて false になるため、NANコンポーネントは拒否されません。そのようなインスタンスはNANの面積を報告し、両方の述語からfalseを返します。構築前に上流の浮動小数点ソースをサニタイズしてください。- 面積ゼロのボックス。 幅または高さがゼロのボックスは、自身を含め何ともオーバーラップしません。それでも、退化していないボックスに包含されることはあります。交差ロジックではこの非対称性を考慮してください。
- エッジが接するボックス。 辺または角のみを共有する 2 つのボックスはオーバーラップしません。交差判定は厳密です。
- 包含許容範囲の非対称性。 左辺または上辺が外側のボックスからわずかでもはみ出す内側のボックスは、包含判定に失敗します。
1e-9の許容は右辺と下辺にのみ適用されます。 - FIPS モード。 このモジュールは暗号操作を一切行いません。FIPS モードはその挙動を変更しません。
このモジュールは規範的な標準を実装しておらず、適合性の主張も行いません。検証済みのジオメトリプリミティブです。これを利用する機能の PDF 座標空間セマンティクスは、それらの機能のページに文書化されています。NextPDF はいかなる認証も保有せず、付与もしません。サポートは適合性ではなく、適合性は認証ではありません。このサーフェスには輸出管理上の制限は適用されず、このリファレンスは法的意見ではありません。
開発上の注記
「開発上の注記」という見出しのセクション- このクラスは
nextpdf/enterprise2.2.0 以降で利用可能であり、そのパブリックサーフェスは 3.1.0 でも変更されていません。 - 構築前に、絶対的なページ空間座標をページ相対の割合に変換してください。このクラスは範囲を検証しますが、セマンティクスは検証しません。もっともらしいが誤った領域を検出することはできません。
- インスタンスは単なる値オブジェクトであり、構築コストは低くなっています。プールやキャッシュを行わないでください。
- 同一の座標を持つ 2 つのインスタンスは、緩い等価性(
==)では等しいと比較されますが、厳密な同一性(===)では区別されます。テストでは座標の比較を優先してください。 - 真偽値の述語を超えるジオメトリについては、パブリックプロパティから辺を導出してください。右辺は
x + width、下辺はy + heightです。 - 許容範囲の境界をテストする際は、エッジ合計ガードと包含の右辺/下辺の比較の両方について、
1e-9の両側を検証してください。
このページは、外部から観測可能な挙動とサポート対象のパブリック API サーフェスのみを文書化しています。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットのプレフィックスは範囲外です。