Skip to content
getnextpdf.com

Enterprise edition

Common

NextPDF Enterprise ships a small set of shared primitives reused across Enterprise modules. The first is a normalized bounding box for resolution-independent spatial positioning. These are value objects with no compliance, conformance, or cryptographic behavior.

This capability ships in NextPDF Enterprise (nextpdf/enterprise) and activates with an Enterprise-tier license envelope. A deployment without that entitlement does not load the capability’s classes. Compare editions and get a license.

The Enterprise package installs next to the Core package; these shared primitives are consumed internally by the other Enterprise modules and resolve with the package. They have no Core-tier or Pro-tier equivalent.

Terminal window
composer require nextpdf/enterprise:^3

BoundingBox is an immutable value object whose four coordinates — x, y, width, height — are normalized to the [0.0, 1.0] range relative to page dimensions. Because coordinates are normalized, the box is resolution-independent and can be reused across Enterprise modules that reason about page geometry. The constructor validates that every coordinate is within range and that x + width and y + height do not exceed 1.0 (within a small floating-point tolerance), raising an argument error otherwise.

It exposes area(), contains(self $other), and overlaps(self $other). Zero-area boxes (degenerate points or lines) cannot overlap by definition.

This module provides validated geometry primitives. It makes no compliance or conformance claim and performs no I/O.

Common is an Enterprise-only support surface that other Enterprise modules consume. It does not duplicate or replace Core geometry; it provides the small, validated primitives the Enterprise modules share.

The load-bearing decision is to normalize every coordinate to the [0.0, 1.0] range and validate it in the constructor. Normalized coordinates make the box resolution-independent, so a region described once stays correct at any page size or render scale. Fail-closed construction means an invalid or overflowing box cannot exist: the constructor rejects it rather than clamping or guessing. Consuming Enterprise modules therefore never re-check geometry they receive, because a constructed box is already known-valid. Immutability keeps a shared box safe to pass between modules without defensive copies. Design background: An API that refuses to guess.

ClassResponsibility
BoundingBoxImmutable normalized box; area(), contains(), overlaps().
use NextPDF\Enterprise\Common\BoundingBox;
$box = new BoundingBox(0.1, 0.1, 0.5, 0.2);
$inside = $box->contains(new BoundingBox(0.2, 0.15, 0.1, 0.02));
$region = new BoundingBox($x, $y, $w, $h); // throws on out-of-range input
if ($region->overlaps($redactionZone)) {
$logger->info('common.overlap', ['area' => $region->area()]);
}
  • Constructing with any coordinate outside [0.0, 1.0], or with x + width / y + height over 1.0, raises an argument error — validate inputs upstream.
  • Zero-area boxes never overlap; account for that when computing intersections.
  • Coordinates are normalized, not pixels; convert at the rendering boundary.

All operations are constant-time arithmetic on four floats.

BoundingBox performs no I/O and holds no document content. The constructor rejects out-of-range geometry, preventing degenerate values from propagating into consuming modules.

This module holds no personal data and performs no persistence or network I/O. Residency considerations do not apply.

Box coordinates and areas are non-sensitive geometry and are safe to log.

This module implements no normative standard and makes no conformance claim. It is a geometry primitive.

This module performs no cryptographic operations; FIPS mode does not apply.

The only input is four floats. The constructor’s range and bounds validation is the mitigation: invalid geometry cannot be constructed.

  • BoundingBox is an immutable value object whose four coordinates are normalized to the [0.0, 1.0] range relative to page dimensions, making it resolution-independent.
  • The constructor validates that every coordinate is in range and that x + width and y + height do not exceed 1.0 (within a small floating-point tolerance), raising an argument error otherwise.
  • It exposes area(), contains(), and overlaps(); zero-area boxes never overlap by definition.
  • The module performs no I/O, holds no document content, and makes no compliance or conformance claim.

This page documents externally observable behavior and the supported public API surface only. Internal namespace paths, helper classes, mechanism tables, runbook filenames, and ticket prefixes are out of scope.

Core fallback — none; this is an Enterprise-only shared support primitive. It does not duplicate or replace Core geometry and has no Core-tier equivalent.

Pro fallback — none; this capability has no Pro-tier equivalent. The shared BoundingBox primitive ships in the nextpdf/enterprise package only.

The validated geometry primitive is described at the behavior level. It is an Enterprise-only support surface that other Enterprise modules consume; there are no internal sub-mechanisms beyond the documented contract.

Deployment boundary — none applicable; this module performs no persistence, no network I/O, and holds no document content or personal data. There is no operator-owned resource for this surface.

No export-control restriction applies to this surface. The module implements no normative standard and makes no conformance, certification, or regulatory claim. This documentation is not a legal opinion.