Enterprise editie
Common — Diepe referentie
In één oogopslag
Sectie met titel “In één oogopslag”Deze pagina is de diepe referentie voor de NextPDF\Enterprise\Common-namespace. De namespace levert één publiek symbool: het BoundingBox-waardeobject. Het is een onveranderlijke, genormaliseerde rechthoek voor resolutieonafhankelijke ruimtelijke positionering op een pagina. De Enterprise Intelligence- en Privacy-oppervlakken consumeren het voor tabelcelgeometrie, entiteitslocaties en redactiezones. De module voert geen I/O uit, bevat geen documentinhoud en raakt geen cryptografie aan. Lees voor workflowbegeleiding eerst de Common-capaciteitspagina.
Beschikbaarheid en licentiëring
Sectie met titel “Beschikbaarheid en licentiëring”Deze capaciteit wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop op Enterprise-niveau. Een deployment zonder die entitlement laadt de klassen van de capaciteit niet. Vergelijk edities en vraag een licentie aan.
De primitieve zelf voert geen licentie-gating uit; gating gebeurt op de Enterprise-oppervlakken die het consumeren. Er is geen equivalent van deze klasse op Core-niveau of Pro-niveau. Het wordt uitsluitend geleverd in het nextpdf/enterprise-pakket en dupliceert of vervangt geen Core-geometrietypen.
Publiek API-oppervlak
Sectie met titel “Publiek API-oppervlak”| Symbool | Parameters | Standaardgedrag | Retourneert | Genereert of faalt met | Opmerkingen |
|---|---|---|---|---|---|
BoundingBox::__construct | float $x, float $y, float $width, float $height | Valideert elke waarde tegen [0.0, 1.0], valideert daarna beide randsommen | BoundingBox | InvalidArgumentException wanneer een waarde buiten bereik ligt of een randsom 1.0 + 1e-9 overschrijdt | Alle vier de waarden worden public readonly-eigenschappen |
BoundingBox::area | geen | Vermenigvuldigt width met height | float | Niets gedeclareerd | Retourneert 0.0 voor gedegenereerde boxen |
BoundingBox::contains | self $other | Test of $other volledig binnen deze box ligt | bool | Niets gedeclareerd | Rechter- en onderranden tolereren +1e-9; linker- en bovenranden worden exact vergeleken |
BoundingBox::overlaps | self $other | Test op een strikte rechthoekdoorsnede | bool | Niets gedeclareerd | Een operand met oppervlakte nul aan één van beide zijden retourneert false |
Signatuur van het instappunt
Sectie met titel “Signatuur van het instappunt”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}Gedragscontract
Sectie met titel “Gedragscontract”Coördinatenmodel
Sectie met titel “Coördinatenmodel”- Alle vier de waarden zijn breuken van de paginadimensies, genormaliseerd naar het bereik
[0.0, 1.0]. xbepaalt de linkerrand enybepaalt de bovenrand van de box.x + widtheny + heightbegrenzen de rechter- en onderrand.- Normalisatie maakt elke bewerking resolutieonafhankelijk. Dezelfde box adresseert dezelfde paginaregio bij elke rendergrootte of DPI.
Constructie
Sectie met titel “Constructie”- De constructor is het enige validatiepunt. Een coördinaat buiten
[0.0, 1.0]genereertInvalidArgumentException; het bericht benoemt de overtredende component en de ontvangen waarde. - Een randsom boven
1.0 + 1e-9genereertInvalidArgumentException; het bericht rapporteert beide operanden en hun som. De tolerantie van1e-9absorbeert floating-pointafronding uit upstream normalisatierekenwerk. - Een geconstrueerde instantie is onveranderlijk. De klasse is
final readonly, dus schrijfacties op eigenschappen falen met een PHPErroren de klasse kan niet worden uitgebreid.
Predicaten
Sectie met titel “Predicaten”area()retourneertwidth * height. Het is een pure berekening zonder neveneffecten.contains()retourneerttruewanneer de andere box volledig binnen deze box ligt. De vergelijkingen voor de rechter- en onderrand dragen een tolerantie van+1e-9; de vergelijkingen voor de linker- en bovenrand zijn exact. Elke box bevat zichzelf, en een box met oppervlakte nul kan worden bevat.overlaps()retourneerttruebij een strikte rechthoekdoorsnede. Alle vier de randvergelijkingen zijn strikt, zonder tolerantie. Als een van beide operanden oppervlakte nul heeft, is het resultaatfalse.- Containment impliceert daarom geen overlap: een gedegenereerde box binnen een andere box wordt bevat maar overlapt nooit.
- Geen enkele methode voert I/O, persistentie, netwerktoegang of logging uit, en geen enkele bevat documentinhoud of persoonsgegevens. Er is geen operator-eigen resource voor dit oppervlak.
Consumenten
Sectie met titel “Consumenten”Enterprise-modules delen deze primitieve in plaats van per-module geometrie te definiëren. In Intelligence draagt de output van TableExtractor het op TableCell- en KeyValuePair-waarden. In Privacy lokaliseren PiiEntity, RedactionFinding en ZoneRedaction inhoud ermee, en RedactionEngine consumeert die locaties. De contracten van die oppervlakken zijn gedocumenteerd op hun eigen referentiepagina’s.
Randgevallen en faalmodi
Sectie met titel “Randgevallen en faalmodi”- Component buiten bereik. Elk van de vier waarden onder
0.0of boven1.0genereert bij constructieInvalidArgumentException.INFen-INFworden door dezelfde bewaking afgewezen. - Randsomoverloop.
x + widthofy + heightboven1.0 + 1e-9genereertInvalidArgumentException. Een som binnen de tolerantie van1e-9construeert succesvol. NAN-invoer. De bereikbewaking gebruikt geordende vergelijkingen, en elke geordende vergelijking metNANis onwaar, dus eenNAN-component wordt niet afgewezen. Zo’n instantie rapporteert eenNAN-oppervlakte en retourneertfalseuit beide predicaten. Saneer upstream floatbronnen vóór constructie.- Boxen met oppervlakte nul. Een box met breedte nul of hoogte nul overlapt nooit iets, ook zichzelf niet. Deze kan nog steeds worden bevat door een niet-gedegenereerde box. Houd rekening met deze asymmetrie in doorsnedelogica.
- Boxen die randen raken. Twee boxen die alleen een rand of een hoek delen, overlappen niet; de doorsnedetest is strikt.
- Asymmetrie in containmenttolerantie. Een binnenbox waarvan de linker- of bovenrand met welk bedrag dan ook buiten de buitenbox ligt, faalt containment; alleen de rechter- en onderrand krijgen de toegestane
1e-9. - FIPS-modus. Deze module voert geen cryptografische bewerkingen uit; de FIPS-modus verandert het gedrag niet.
Conformiteit
Sectie met titel “Conformiteit”Deze module implementeert geen normatieve standaard en doet geen conformiteitsclaim. Het is een gevalideerde geometrische primitieve. De PDF-coördinatenruimtesemantiek voor de features die het consumeren, is gedocumenteerd op de pagina’s van die features. NextPDF houdt geen certificering en verleent er geen; support is geen conformiteit, en conformiteit is geen certificering. Er geldt geen exportcontrolebeperking voor dit oppervlak, en deze referentie is geen juridisch advies.
Ontwikkelingsnotities
Sectie met titel “Ontwikkelingsnotities”- De klasse is beschikbaar sinds
nextpdf/enterprise2.2.0; het publieke oppervlak is ongewijzigd in 3.1.0. - Converteer absolute paginaruimtecoördinaten naar paginarelatieve breuken vóór constructie. De klasse valideert bereik, niet semantiek; ze kan geen plausibele-maar-verkeerde regio detecteren.
- Instanties zijn gewone waardeobjecten en zijn goedkoop te construeren. Pool of cache ze niet.
- Twee instanties met identieke coördinaten zijn gelijk onder losse gelijkheid (
==); strikte identiteit (===) onderscheidt ze. Geef in tests de voorkeur aan coördinaatvergelijking. - Voor geometrie buiten de booleaanse predicaten leid je de randen af uit de publieke eigenschappen: rechterrand
x + width, onderrandy + height. - Test bij het testen van tolerantiegrenzen beide zijden van
1e-9op de randsombewaking en op de containmentvergelijkingen voor rechts/onder.
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert uitsluitend extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.