Ga naar inhoud
getnextpdf.com

Enterprise editie

Common

NextPDF Enterprise levert een kleine set gedeelde primitieven die in Enterprise-modules worden hergebruikt. De eerste is een genormaliseerde bounding box voor resolutie-onafhankelijke ruimtelijke positionering. Dit zijn value objects zonder compliance-, conformiteits- of cryptografisch gedrag.

Deze functie wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop op Enterprise-niveau. Een deployment zonder die entitlement laadt de classes van de functie niet. Vergelijk edities en verkrijg een licentie.

Het Enterprise-pakket wordt naast het Core-pakket geïnstalleerd; deze gedeelde primitieven worden intern gebruikt door de andere Enterprise-modules en worden met het pakket geresolved. Ze hebben geen equivalent op Core- of Pro-niveau.

Terminal window
composer require nextpdf/enterprise:^3

BoundingBox is een onveranderlijk value object waarvan de vier coördinaten — x, y, width, height — zijn genormaliseerd naar het bereik [0.0, 1.0] relatief ten opzichte van de pagina-afmetingen. Omdat de coördinaten zijn genormaliseerd, is de box resolutie-onafhankelijk en kan deze worden hergebruikt in Enterprise-modules die over pagina-geometrie redeneren. De constructor valideert dat elke coördinaat binnen het bereik valt en dat x + width en y + height niet groter zijn dan 1.0 (binnen een kleine floating-point-tolerantie), en gooit anders een argumentfout.

Het biedt area(), contains(self $other) en overlaps(self $other). Boxen met een oppervlakte van nul (gedegenereerde punten of lijnen) kunnen per definitie niet overlappen.

Deze module levert gevalideerde geometrieprimitieven. Het doet geen compliance- of conformiteitsclaim en voert geen I/O uit.

Common is een Enterprise-only ondersteuningsoppervlak dat andere Enterprise-modules verbruiken. Het dupliceert of vervangt de Core-geometrie niet; het levert de kleine, gevalideerde primitieven die de Enterprise-modules delen.

De doorslaggevende beslissing is om elke coördinaat te normaliseren naar het bereik [0.0, 1.0] en deze in de constructor te valideren. Genormaliseerde coördinaten maken de box resolutie-onafhankelijk, zodat een gebied dat eenmaal is beschreven correct blijft bij elk paginaformaat of elke renderschaal. Fail-closed-constructie betekent dat een ongeldige of overlopende box niet kan bestaan: de constructor wijst deze af in plaats van te clampen of te gissen. Verbruikende Enterprise-modules hoeven daarom de geometrie die ze ontvangen nooit opnieuw te controleren, omdat een geconstrueerde box al bekend-geldig is. Onveranderlijkheid houdt een gedeelde box veilig om zonder defensieve kopieën tussen modules door te geven. Ontwerpachtergrond: Een API die weigert te gissen.

ClassVerantwoordelijkheid
BoundingBoxOnveranderlijke genormaliseerde 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()]);
}
  • Construeren met een coördinaat buiten [0.0, 1.0], of met x + width / y + height boven 1.0, gooit een argumentfout — valideer de invoer upstream.
  • Boxen met een oppervlakte van nul overlappen nooit; houd daar rekening mee bij het berekenen van doorsneden.
  • Coördinaten zijn genormaliseerd, geen pixels; converteer op de rendergrens.

Alle operaties zijn constante-tijd rekenkundige bewerkingen op vier floats.

BoundingBox voert geen I/O uit en bevat geen documentinhoud. De constructor weigert geometrie buiten het bereik, waardoor gedegenereerde waarden niet kunnen doorsijpelen naar verbruikende modules.

Deze module bevat geen persoonsgegevens en voert geen persistentie of netwerk-I/O uit. Overwegingen rond gegevenslocatie zijn niet van toepassing.

Box-coördinaten en oppervlaktes zijn niet-gevoelige geometrie en zijn veilig om te loggen.

Deze module implementeert geen normatieve standaard en doet geen conformiteitsclaim. Het is een geometrieprimitieve.

Deze module voert geen cryptografische operaties uit; de FIPS-modus is niet van toepassing.

De enige invoer bestaat uit vier floats. De bereik- en grensvalidatie van de constructor is de mitigatie: ongeldige geometrie kan niet worden geconstrueerd.

  • BoundingBox is een onveranderlijk value object waarvan de vier coördinaten zijn genormaliseerd naar het bereik [0.0, 1.0] relatief ten opzichte van de pagina-afmetingen, waardoor het resolutie-onafhankelijk is.
  • De constructor valideert dat elke coördinaat binnen het bereik valt en dat x + width en y + height niet groter zijn dan 1.0 (binnen een kleine floating-point-tolerantie), en gooit anders een argumentfout.
  • Het biedt area(), contains() en overlaps(); boxen met een oppervlakte van nul overlappen per definitie nooit.
  • De module voert geen I/O uit, bevat geen documentinhoud en doet geen compliance- of conformiteitsclaim.

Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helper-classes, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.

Core-fallback — geen; dit is een Enterprise-only gedeelde ondersteuningsprimitieve. Het dupliceert of vervangt de Core-geometrie niet en heeft geen equivalent op Core-niveau.

Pro-fallback — geen; deze capaciteit heeft geen equivalent op Pro-niveau. De gedeelde BoundingBox-primitieve wordt uitsluitend in het pakket nextpdf/enterprise geleverd.

De gevalideerde geometrieprimitieve wordt op gedragsniveau beschreven. Het is een Enterprise-only ondersteuningsoppervlak dat andere Enterprise-modules verbruiken; er zijn geen interne submechanismen buiten het gedocumenteerde contract.

Implementatiegrens — geen van toepassing; deze module voert geen persistentie, geen netwerk-I/O uit en bevat geen documentinhoud of persoonsgegevens. Er is geen door de operator beheerde resource voor dit oppervlak.

Voor dit oppervlak geldt geen exportcontrolebeperking. De module implementeert geen normatieve standaard en doet geen conformiteits-, certificerings- of regelgevingsclaim. Deze documentatie is geen juridisch oordeel.