Enterprise 에디션
Common — 심층 참조
한눈에 보기
섹션 제목: “한눈에 보기”이 페이지는 NextPDF\Enterprise\Common 네임스페이스에 대한 심층 참조입니다. 이 네임스페이스는 하나의 공개 심볼, 즉 BoundingBox 값 객체를 제공합니다. 이는 페이지에서 해상도에 독립적인 공간 위치 지정을 위한 불변의 정규화된 사각형입니다. Enterprise Intelligence 및 Privacy 표면은 이를 표 셀 기하, 엔터티 위치, 삭제(redaction) 영역에 사용합니다. 이 모듈은 어떠한 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 | 네 값 모두 public readonly 속성이 됩니다 |
BoundingBox::area | 없음 | width에 height를 곱합니다 | float | 선언된 예외 없음 | 퇴화된 박스에는 0.0을 반환합니다 |
BoundingBox::contains | self $other | $other가 이 박스 내부에 완전히 있는지 검사합니다 | bool | 선언된 예외 없음 | 오른쪽 및 아래쪽 에지는 +1e-9를 허용하며, 왼쪽 및 위쪽 에지는 정확히 비교합니다 |
BoundingBox::overlaps | self $other | 엄격한 사각형 교차를 검사합니다 | bool | 선언된 예외 없음 | 어느 한쪽이라도 넓이가 0인 피연산자면 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}동작 계약
섹션 제목: “동작 계약”좌표 모델
섹션 제목: “좌표 모델”- 네 값 모두 페이지 크기의 분수이며
[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이므로 속성 쓰기는 PHPError로 실패하며 클래스를 확장할 수 없습니다.
area()는width * height를 반환합니다. 부작용이 없는 순수 계산입니다.contains()는 다른 박스가 이 박스 내부에 완전히 있을 때true를 반환합니다. 오른쪽 및 아래쪽 에지 비교는+1e-9허용 오차를 가지며, 왼쪽 및 위쪽 에지 비교는 정확합니다. 모든 박스는 자기 자신을 포함하며, 넓이가 0인 박스도 포함될 수 있습니다.overlaps()는 엄격한 사각형 교차에서true를 반환합니다. 네 에지 비교 모두 허용 오차 없이 엄격합니다. 어느 한쪽 피연산자라도 넓이가 0이면 결과는false입니다.- 따라서 포함은 겹침을 의미하지 않습니다. 다른 박스 안에 있는 퇴화된 박스는 포함되지만 결코 겹치지 않습니다.
- 어떤 메서드도 I/O, 영속화, 네트워크 접근, 로깅을 수행하지 않으며, 어떤 것도 문서 콘텐츠나 개인 데이터를 보유하지 않습니다. 이 표면에는 운영자 소유 리소스가 없습니다.
소비자
섹션 제목: “소비자”Enterprise 모듈은 모듈별 기하를 정의하는 대신 이 프리미티브를 공유합니다. Intelligence에서는 TableExtractor 출력이 TableCell 및 KeyValuePair 값에 이를 담습니다. Privacy에서는 PiiEntity, RedactionFinding, ZoneRedaction이 이를 사용해 콘텐츠 위치를 지정하고, RedactionEngine이 그 위치를 소비합니다. 이러한 표면의 계약은 각자의 참조 페이지에 문서화되어 있습니다.
엣지 케이스 및 실패 모드
섹션 제목: “엣지 케이스 및 실패 모드”- 범위를 벗어난 구성 요소. 네 값 중
0.0미만이거나1.0을 초과하는 값이 있으면 생성 시점에InvalidArgumentException을 발생시킵니다.INF와-INF도 동일한 가드에 의해 거부됩니다. - 에지 합계 오버플로.
x + width또는y + height가1.0 + 1e-9를 초과하면InvalidArgumentException을 발생시킵니다.1e-9허용 오차 이내의 합계는 성공적으로 생성됩니다. NAN입력. 범위 가드는 순서 비교를 사용하며NAN과의 모든 순서 비교는 거짓이므로,NAN구성 요소는 거부되지 않습니다. 그러한 인스턴스는NAN넓이를 보고하고 두 술어 모두에서false를 반환합니다. 생성 전에 상류 부동소수점 소스를 정제하십시오.- 넓이가 0인 박스. 너비 또는 높이가 0인 박스는 자기 자신을 포함해 어떤 것과도 결코 겹치지 않습니다. 그러나 퇴화되지 않은 박스에 포함될 수는 있습니다. 교차 로직에서 이 비대칭을 고려하십시오.
- 에지가 맞닿은 박스. 에지나 모서리만 공유하는 두 박스는 겹치지 않습니다. 교차 검사는 엄격합니다.
- 포함 허용 오차 비대칭. 왼쪽 또는 위쪽 에지가 조금이라도 바깥쪽 박스를 벗어난 안쪽 박스는 포함에 실패합니다.
1e-9허용은 오른쪽 및 아래쪽 에지에만 적용됩니다. - FIPS 모드. 이 모듈은 어떠한 암호화 연산도 수행하지 않으므로 FIPS 모드는 그 동작을 변경하지 않습니다.
적합성
섹션 제목: “적합성”이 모듈은 어떠한 규범 표준도 구현하지 않으며 어떠한 적합성 주장도 하지 않습니다. 검증된 기하 프리미티브입니다. 이를 소비하는 기능의 PDF 좌표 공간 의미론은 해당 기능의 페이지에 문서화되어 있습니다. NextPDF는 어떠한 인증도 보유하지 않으며 부여하지도 않습니다. 지원은 적합성이 아니고, 적합성은 인증이 아닙니다. 이 표면에는 어떠한 수출 통제 제한도 적용되지 않으며, 이 참조는 법률 의견이 아닙니다.
개발 참고 사항
섹션 제목: “개발 참고 사항”- 이 클래스는
nextpdf/enterprise2.2.0부터 제공되며, 그 공개 표면은 3.1.0에서도 변경되지 않았습니다. - 생성 전에 절대 페이지 공간 좌표를 페이지 상대 분수로 변환하십시오. 이 클래스는 의미가 아니라 범위를 검증하므로, 그럴듯하지만 잘못된 영역을 감지할 수 없습니다.
- 인스턴스는 평범한 값 객체이며 생성 비용이 저렴합니다. 풀링하거나 캐시하지 마십시오.
- 동일한 좌표를 가진 두 인스턴스는 느슨한 동등성(
==)에서 같다고 비교되지만, 엄격한 동일성(===)은 이들을 구별합니다. 테스트에서는 좌표 비교를 선호하십시오. - 불리언 술어를 넘어서는 기하가 필요하면 공개 속성에서 에지를 유도하십시오. 오른쪽 에지는
x + width, 아래쪽 에지는y + height입니다. - 허용 오차 경계를 테스트할 때는 에지 합계 가드와 포함의 오른쪽/아래쪽 비교 모두에서
1e-9의 양쪽을 탐색하십시오.
게시 경계
섹션 제목: “게시 경계”이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만을 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위를 벗어납니다.