Ga naar inhoud
getnextpdf.com

Enterprise editie

Common — Diepe referentie

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.

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.

SymboolParametersStandaardgedragRetourneertGenereert of faalt metOpmerkingen
BoundingBox::__constructfloat $x, float $y, float $width, float $heightValideert elke waarde tegen [0.0, 1.0], valideert daarna beide randsommenBoundingBoxInvalidArgumentException wanneer een waarde buiten bereik ligt of een randsom 1.0 + 1e-9 overschrijdtAlle vier de waarden worden public readonly-eigenschappen
BoundingBox::areageenVermenigvuldigt width met heightfloatNiets gedeclareerdRetourneert 0.0 voor gedegenereerde boxen
BoundingBox::containsself $otherTest of $other volledig binnen deze box ligtboolNiets gedeclareerdRechter- en onderranden tolereren +1e-9; linker- en bovenranden worden exact vergeleken
BoundingBox::overlapsself $otherTest op een strikte rechthoekdoorsnedeboolNiets gedeclareerdEen operand met oppervlakte nul aan één van beide zijden retourneert 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
}
  • Alle vier de waarden zijn breuken van de paginadimensies, genormaliseerd naar het bereik [0.0, 1.0].
  • x bepaalt de linkerrand en y bepaalt de bovenrand van de box. x + width en y + height begrenzen de rechter- en onderrand.
  • Normalisatie maakt elke bewerking resolutieonafhankelijk. Dezelfde box adresseert dezelfde paginaregio bij elke rendergrootte of DPI.
  • De constructor is het enige validatiepunt. Een coördinaat buiten [0.0, 1.0] genereert InvalidArgumentException; het bericht benoemt de overtredende component en de ontvangen waarde.
  • Een randsom boven 1.0 + 1e-9 genereert InvalidArgumentException; het bericht rapporteert beide operanden en hun som. De tolerantie van 1e-9 absorbeert floating-pointafronding uit upstream normalisatierekenwerk.
  • Een geconstrueerde instantie is onveranderlijk. De klasse is final readonly, dus schrijfacties op eigenschappen falen met een PHP Error en de klasse kan niet worden uitgebreid.
  • area() retourneert width * height. Het is een pure berekening zonder neveneffecten.
  • contains() retourneert true wanneer 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() retourneert true bij een strikte rechthoekdoorsnede. Alle vier de randvergelijkingen zijn strikt, zonder tolerantie. Als een van beide operanden oppervlakte nul heeft, is het resultaat false.
  • 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.

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.

  • Component buiten bereik. Elk van de vier waarden onder 0.0 of boven 1.0 genereert bij constructie InvalidArgumentException. INF en -INF worden door dezelfde bewaking afgewezen.
  • Randsomoverloop. x + width of y + height boven 1.0 + 1e-9 genereert InvalidArgumentException. Een som binnen de tolerantie van 1e-9 construeert succesvol.
  • NAN-invoer. De bereikbewaking gebruikt geordende vergelijkingen, en elke geordende vergelijking met NAN is onwaar, dus een NAN-component wordt niet afgewezen. Zo’n instantie rapporteert een NAN-oppervlakte en retourneert false uit 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.

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.

  • De klasse is beschikbaar sinds nextpdf/enterprise 2.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, onderrand y + height.
  • Test bij het testen van tolerantiegrenzen beide zijden van 1e-9 op de randsombewaking en op de containmentvergelijkingen voor rechts/onder.

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.