콘텐츠로 이동
getnextpdf.com

Enterprise 에디션

브랜딩

브랜딩 서브시스템은 평가 기간 동안 생성된 PDF에 보이는 평가 브랜딩을 적용하고, 유료 라이선스에서는 아무것도 적용하지 않습니다. nextpdf/enterprise 패키지로 제공되며, 에디션 전반의 평가 동작을 관장하고, 애플리케이션 코드가 아니라 전적으로 라이선스에 의해 구동됩니다. 엔드 투 엔드 평가 흐름은 Trial and Evaluation Branding을 참조하십시오. 이 페이지는 브랜딩 서브시스템 자체를 문서화합니다.

이 기능은 NextPDF Enterprise(nextpdf/enterprise)에서 제공되며 Enterprise 티어 라이선스 봉투로 활성화됩니다. 해당 자격이 없는 배포는 이 기능의 클래스를 로드하지 않습니다. 에디션 비교 및 라이선스 받기.

대부분의 Enterprise 표면과 달리 이 기능은 전용 기능 코드 enterprise.branding을 갖는데, Core 전용 및 Pro 전용 배포를 포함해 모든 에디션 전반의 평가 동작을 관장하기 때문입니다. 브랜딩 모드는 런타임에 서명된 라이선스 봉투로부터 해석됩니다. 이를 선택하는 애플리케이션 플래그는 없으며, 어떤 에디션에서든 유료 라이선스는 BrandingMode::None으로 해석됩니다.

Terminal window
composer require nextpdf/enterprise:^3

런타임에는 BrandingMode로 모델링되는 두 상태의 브랜딩 모드가 있습니다.

  • None — 평가 브랜딩 없음. 유료 및 정상 출력은 결코 수정되지 않습니다. 이것이 기본값입니다.
  • EvaluationWatermark — 생성된 PDF에 보이는 평가 브랜딩이 적용됩니다.

BrandingStrategyFactory는 모드를 전략에 매핑합니다. None에는 NullBrandingStrategy(작업을 수행하지 않고 어떤 수정도 만들지 않음), EvaluationWatermark에는 EvaluationBrandingStrategy입니다. 모드를 선택하는 것은 애플리케이션 코드가 아니라 라이선스 상태입니다. 유료 라이선스는 결코 브랜딩된 출력을 생성하지 않으며, 전환할 프로덕션 빌드도 없고 뒤집을 코드 플래그도 없습니다.

이 페이지는 런타임 동작만 설명합니다. 자격이나 법적 효력에 대해 어떤 보증이나 진술도 하지 않습니다. 귀하의 평가 또는 구독에 적용되는 약관은 전적으로 귀하의 라이선스 계약에 의해 정의됩니다.

개념동작
BrandingMode두 상태: None(기본값, 수정 없음) 또는 EvaluationWatermark.
BrandingStrategyFactoryBrandingMode를 전략으로 해석합니다.
EvaluationBrandingStrategy평가 워터마크와 메타데이터 장식을 적용합니다.
NullBrandingStrategy유료 / 정상 출력을 위한 무작업(no-op) 전략.
EvaluationBrandingConfig불변 워터마크 텍스트, 메타데이터 장식, 글꼴 크기, 회색 수준, 각도.
BrandingStrategy통합 계층이 소비하는 계약: isActive(), buildPageWatermark(), decorateProducer(), decorateSubject().
BrandingApplicator해석된 전략을 렌더링된 PDF 바이트에 적용합니다. 페일 클로즈드로, 활성 브랜딩을 마킹할 수 없으면 BrandingApplicationException을 던집니다.

이 서브시스템은 라이선스가 해석한 전략을 적용하는 통합 계층을 위한 작은 호출 가능 표면을 노출합니다. 애플리케이션 코드는 브랜딩 여부를 결코 선택하지 않습니다. 아래 샘플은 두 접점을 보여 줍니다. 해석된 전략을 읽는 것과, 페일 클로즈드 애플리케이터로 렌더링된 바이트를 마킹하는 것입니다.

라이선스가 선택한 전략을 해석하고 그 동작을 읽습니다. 유료 라이선스는 BrandingMode::None으로 해석되며, 그 전략은 비활성이고 모든 값을 변경 없이 통과시킵니다.

resolve-strategy.php
<?php
declare(strict_types=1);
use NextPDF\Enterprise\Branding\BrandingMode;
use NextPDF\Enterprise\Branding\BrandingStrategyFactory;
// The license resolves the mode; None is what a paid license produces.
$strategy = BrandingStrategyFactory::create(BrandingMode::None);
\var_dump($strategy->isActive()); // bool(false)
echo $strategy->decorateProducer('NextPDF 3.1'); // NextPDF 3.1 (unchanged)

라이선스가 해석한 전략으로 이미 렌더링된 PDF 바이트를 마킹합니다. BrandingApplicator::apply()는 유료 라이선스에서는 입력을 변경 없이 반환하고, 평가 라이선스에서는 원본 바이트를 그대로 유지하면서 워터마크와 메타데이터 마커를 덧붙입니다. 활성 브랜딩을 안전하게 적용할 수 없으면 BrandingApplicationException을 던집니다 — 이를 종료 상태로 취급하고 마킹되지 않은 바이트를 결코 커밋하지 마십시오.

apply-evaluation-branding.php
<?php
declare(strict_types=1);
use NextPDF\Enterprise\Branding\BrandingApplicationException;
use NextPDF\Enterprise\Branding\BrandingApplicator;
use NextPDF\Enterprise\Branding\BrandingMode;
use NextPDF\Enterprise\Branding\BrandingStrategyFactory;
use NextPDF\Enterprise\Branding\EvaluationBrandingConfig;
/**
* Apply the branding the license resolved to freshly rendered PDF bytes.
*
* @param string $renderedPdf Bytes from the render engine.
* @param BrandingMode $mode Resolved from the signed license envelope.
*
* @throws BrandingApplicationException When active branding cannot be marked.
*/
function markEvaluationOutput(string $renderedPdf, BrandingMode $mode): string
{
$strategy = BrandingStrategyFactory::create(
$mode,
new EvaluationBrandingConfig(
watermarkText: 'EVALUATION COPY — Not for Production Use',
),
);
try {
return (new BrandingApplicator())->apply($renderedPdf, $strategy);
} catch (BrandingApplicationException $e) {
// Fail-closed: never emit unbranded evaluation output. Dead-letter.
throw $e;
}
}

활성 라이선스가 EvaluationWatermark를 선택하면, 평가 전략은 다음을 수행합니다.

  • 각 페이지에 연한 회색 대각선 워터마크 텍스트를 그립니다. 격리된 그래픽스 상태에서 페이지 콘텐츠 스트림으로 렌더링되므로 주변 콘텐츠나 귀하의 레이아웃을 변경하지 않습니다.
  • 문서의 producer 메타데이터에 평가 접미사를 추가합니다.
  • 문서의 subject 메타데이터 앞에 평가 접두사를 붙입니다.

워터마크는 Base14 글꼴과 회전 행렬을 사용해 텍스트를 페이지 중앙을 가로질러 대각선으로 배치합니다. 구성 객체는 불변이며 입력을 검증합니다(예를 들어 워터마크 텍스트는 비어 있을 수 없고 글꼴 크기는 양수여야 합니다).

유료 라이선스가 브랜딩을 제거하는 방식

섹션 제목: “유료 라이선스가 브랜딩을 제거하는 방식”

유료(비평가) 라이선스에서 브랜딩 모드는 None이며 널 전략이 선택됩니다. 워터마크 없음, producer 접미사 없음, subject 접두사 없음입니다. 출력은 브랜딩 서브시스템이 아예 없는 상태에서 생성된 출력과 동일합니다. 평가 브랜딩 제거에는 코드 변경이 필요하지 않습니다 — 유료 라이선스를 설치하면 다음 생성 문서는 브랜딩이 없습니다.

  • 라이선스 상태가 평가 방식일 때 브랜딩이 나타납니다. 이는 결함이 아니라 라이선스 상태를 반영합니다. 라이선스 상태를 확인하고 라이선스 포털을 통해 갱신하십시오.
  • 워터마크는 평가 출력이 명확하도록 설계상 중앙에 대각선으로 배치됩니다. 프로덕션용으로 조정하도록 의도되지 않았습니다. 유료 라이선스는 이를 완전히 제거합니다.
  • producer 및 subject 메타데이터는 평가 기간 동안 평가 마커를 담으며 유료 라이선스에서는 없습니다.

워터마크는 작고 고정된 페이지별 콘텐츠 스트림으로, 생성 시간이나 문서 크기에 미치는 영향이 미미합니다. 유료 라이선스에서는 서브시스템이 작업을 수행하지 않습니다. 이 페이지의 성능 예산은 문서 렌더링을 반영합니다.

평가 브랜딩은 가시성 마커이지 보안 통제가 아닙니다. 평가 출력임을 나타냅니다. 디지털 서명이 아니며 서명으로 의존해서는 안 됩니다. 변조 증명 출력이 필요하면 기능 매트릭스에 설명된 서명 기능을 사용하십시오. 브랜딩 모드를 선택하는 라이선스는 런타임이 발급자 서명을 검증하는 서명된 봉투입니다.

브랜딩 서브시스템은 고정된 워터마크와 메타데이터 마커를 추가합니다. 문서 콘텐츠를 읽거나 전송하지 않으며 네트워크 호출을 하지 않습니다.

안전한 텔레메트리 및 로그 스크러빙

섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”

서브시스템은 문서 콘텐츠를 로그에 기록하지 않습니다. 브랜딩 모드를 변경하는 라이선스 상태 전환은 여기가 아니라 라이선싱 서브시스템을 통해 표시됩니다.

이 페이지에 대해서는 표준 적합성을 주장하지 않습니다. 런타임 동작만 설명합니다. 어떤 보증, 인증, 자격도 진술하거나 암시하지 않습니다. 귀하의 평가 또는 구독 약관은 전적으로 귀하의 라이선스 계약에 의해 정의됩니다.

이 모듈은 암호화 작업을 수행하지 않습니다. 라이선스 서명 검증은 라이선싱 서브시스템에서 처리됩니다.

브랜딩 서브시스템 자체는 해석된 브랜딩 모드 외에 어떤 외부 입력도 처리하지 않습니다. 모드를 선택하는 라이선스 봉투는 서명되어 있고 그 발급자 서명은 런타임에 의해 검증됩니다. 모드를 위조하려면 그 서명을 위조해야 합니다.

  • BrandingMode에는 두 상태가 있습니다. None(기본값; 출력 수정 없음)과 EvaluationWatermark입니다.
  • 유료(비평가) 라이선스에서 모드는 None이며 널 전략이 선택됩니다. 출력은 브랜딩 서브시스템이 아예 없는 상태에서 생성된 출력과 동일합니다.
  • 평가 라이선스에서 전략은 격리된 그래픽스 상태에서 대각선 워터마크를 그리고 producer 및 subject 메타데이터에 평가 마커를 추가합니다.
  • 구성 객체는 불변이며 입력을 검증합니다(워터마크 텍스트는 비어 있지 않음, 글꼴 크기는 양수).

이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.

브랜딩 서브시스템은 nextpdf/enterprise 패키지로 제공되지만, 평가 라이선스를 사용하는 Core 전용 및 Pro 전용 배포를 포함해 모든 에디션 전반의 평가 동작을 관장합니다. 폴백할 Core 전용 브랜딩 서브시스템은 없습니다. 어떤 에디션에서든 유료 라이선스는 BrandingMode::None으로 해석됩니다.

별도의 Pro 브랜딩 서브시스템은 없습니다. 동일한 nextpdf/enterprise 브랜딩 서브시스템이 Pro 배포의 평가 동작을 관장합니다. 유료 Pro 라이선스는 유료 Enterprise 라이선스와 정확히 동일하게 BrandingMode::None으로 해석됩니다.

내부 메커니즘 세부 사항은 소스 저장소의 내부 문서에 남으며 이 매뉴얼의 범위 밖입니다.

브랜딩 모드를 선택하는 라이선스 봉투는 런타임이 발급자 서명을 검증하는 서명된 아티팩트입니다. 라이선스 프로비저닝, 갱신, 라이선스의 안전한 저장은 운영자의 책임입니다. 서브시스템은 네트워크 호출을 하지 않으며 문서 콘텐츠를 읽지 않습니다.

이 페이지는 런타임 동작만 설명합니다. 어떤 보증, 인증, 자격도 진술하거나 암시하지 않으며 법률 자문을 구성하지 않습니다. 어떤 브랜딩이 얼마나 오래 적용되는지를 포함한 귀하의 평가 또는 구독 약관은 전적으로 귀하의 라이선스 계약에 의해 정의됩니다. 해당 계약을 참조하거나 영업팀에 문의하십시오.