Ga naar inhoud
getnextpdf.com

Enterprise editie

Branding

Het brandingsubsysteem past tijdens een evaluatie zichtbare evaluatiebranding toe op gegenereerde PDF-bestanden en past onder een betaalde licentie niets toe. Het wordt geleverd in het pakket nextpdf/enterprise, regelt het evaluatiegedrag over edities heen en wordt volledig aangestuurd door de licentie — niet door applicatiecode. Voor het volledige evaluatieverhaal, zie Proef- en evaluatiebranding; deze pagina documenteert het brandingsubsysteem zelf.

Deze capaciteit wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop van het Enterprise-niveau. Een implementatie zonder dat recht laadt de klassen van de capaciteit niet. Vergelijk edities en verkrijg een licentie.

Anders dan de meeste Enterprise-oppervlakken draagt het een toegewijde capaciteitscode, enterprise.branding, omdat het het evaluatiegedrag over alle edities regelt — inclusief Core-only- en Pro-only-implementaties. De brandingmodus wordt tijdens runtime uit de ondertekende licentie-envelop geresolved; geen applicatievlag selecteert deze, en een betaalde licentie in elke editie resolveert naar BrandingMode::None.

Terminal window
composer require nextpdf/enterprise:^3

De runtime heeft een brandingmodus met twee toestanden, gemodelleerd door BrandingMode:

  • None — geen evaluatiebranding. Betaalde en normale uitvoer wordt nooit gewijzigd. Dit is de standaard.
  • EvaluationWatermark — zichtbare evaluatiebranding wordt toegepast op gegenereerde PDF-bestanden.

BrandingStrategyFactory koppelt de modus aan een strategie: NullBrandingStrategy voor None (deze voert geen werk uit en produceert geen wijziging) en EvaluationBrandingStrategy voor EvaluationWatermark. De licentiestatus — niet applicatiecode — selecteert de modus. Een betaalde licentie produceert nooit gebrande uitvoer, en er is geen productie-build om te wisselen en geen codevlag om om te zetten.

Deze pagina beschrijft alleen het runtimegedrag. Ze geeft geen garantie en doet geen uitspraak over geschiktheid of juridisch effect; de voorwaarden die op je evaluatie of abonnement van toepassing zijn, worden uitsluitend bepaald door je licentieovereenkomst.

ConceptGedrag
BrandingModeTwee toestanden: None (standaard, geen wijziging) of EvaluationWatermark.
BrandingStrategyFactoryResolveert een BrandingMode naar een strategie.
EvaluationBrandingStrategyPast het evaluatiewatermerk en de metadatadecoratie toe.
NullBrandingStrategyNo-op-strategie voor betaalde / normale uitvoer.
EvaluationBrandingConfigOnveranderlijke watermerktekst, metadatadecoratie, lettergrootte, grijswaarde en hoek.
BrandingStrategyContract dat de integratielaag consumeert: isActive(), buildPageWatermark(), decorateProducer(), decorateSubject().
BrandingApplicatorPast een geresolvede strategie toe op gerenderde PDF-bytes; fail-closed — werpt BrandingApplicationException wanneer actieve branding niet kan worden gemarkeerd.

Het subsysteem stelt een klein aanroepbaar oppervlak beschikbaar voor de integratielaag die de strategie toepast die de licentie heeft geresolved; applicatiecode kiest nooit of er wordt gebrand. De onderstaande voorbeelden tonen de twee aanraakpunten: het lezen van een geresolvede strategie, en het markeren van gerenderde bytes met de fail-closed-applicator.

Resolveer de strategie die de licentie heeft geselecteerd en lees het gedrag ervan uit. Een betaalde licentie resolveert naar BrandingMode::None, waarvan de strategie inactief is en elke waarde ongewijzigd doorgeeft.

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)

Markeer reeds gerenderde PDF-bytes met de strategie die de licentie heeft geresolved. BrandingApplicator::apply() geeft de invoer ongewijzigd terug voor een betaalde licentie en voegt, voor een evaluatielicentie, het watermerk en de metadatamarkeringen toe terwijl de originele bytes intact blijven. Het werpt BrandingApplicationException wanneer actieve branding niet veilig kan worden toegepast — behandel dat als terminaal en commit nooit de ongemarkeerde bytes.

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;
}
}

Wanneer de actieve licentie EvaluationWatermark selecteert, doet de evaluatiestrategie het volgende:

  • tekent een lichtgrijze diagonale watermerktekst op elke pagina, gerenderd als een pagina-contentstream in een geïsoleerde grafische status zodat deze de omringende inhoud of jouw lay-out niet wijzigt;
  • voegt een evaluatiesuffix toe aan de producer-metadata van het document;
  • plaatst een evaluatieprefix vóór de subject-metadata van het document.

Het watermerk gebruikt een Base14-lettertype en een rotatiematrix om de tekst diagonaal over het paginamidden te positioneren. Het configuratieobject is onveranderlijk en valideert zijn invoer (bijvoorbeeld: watermerktekst mag niet leeg zijn en de lettergrootte moet positief zijn).

Onder een betaalde (niet-evaluatie) licentie is de brandingmodus None en wordt de null-strategie geselecteerd: geen watermerk, geen producer-suffix, geen subject-prefix. De uitvoer is identiek aan uitvoer die zonder enig brandingsubsysteem is geproduceerd. Het verwijderen van evaluatiebranding vereist geen codewijziging — installeer een betaalde licentie en het volgende gegenereerde document is zonder branding.

  • Branding verschijnt wanneer de licentiestatus van het evaluatietype is. Dit weerspiegelt de licentiestatus, geen defect; controleer de licentiestatus en vernieuw via het licentieportaal.
  • Het watermerk is per ontwerp gecentreerd en diagonaal zodat evaluatie-uitvoer ondubbelzinnig is; het is niet bedoeld om voor productie te worden afgesteld. Een betaalde licentie verwijdert het volledig.
  • Producer- en subject-metadata dragen tijdens een evaluatie evaluatiemarkeringen en ontbreken onder een betaalde licentie.

Het watermerk is een kleine, vaste content-stream per pagina met een verwaarloosbare impact op de generatietijd of de documentgrootte. Onder een betaalde licentie voert het subsysteem geen werk uit. Het prestatiebudget van de pagina weerspiegelt het renderen van de documentatie.

Evaluatiebranding is een zichtbaarheidsmarkering, geen beveiligingscontrole. Het geeft evaluatie-uitvoer aan. Het is geen digitale handtekening en mag niet als zodanig worden vertrouwd. Gebruik voor manipulatieaantoonbare uitvoer de ondertekeningscapaciteiten die in de functiematrix worden beschreven. De licentie die de brandingmodus selecteert is een ondertekende envelop waarvan de runtime de uitgever-handtekening verifieert.

Het brandingsubsysteem voegt een vast watermerk en metadatamarkeringen toe; het leest of verzendt geen documentinhoud en doet geen netwerkaanroepen.

Het subsysteem logt geen documentinhoud. Overgangen in de licentiestatus die de brandingmodus wijzigen, worden via het licentiesubsysteem getoond, niet hier.

Voor deze pagina wordt geen standaardenconformiteit geclaimd. Ze beschrijft alleen het runtimegedrag. Ze stelt of impliceert geen enkele garantie, certificering of geschiktheid. De voorwaarden van je evaluatie of abonnement worden uitsluitend bepaald door je licentieovereenkomst.

Deze module voert geen cryptografische operaties uit. Verificatie van de licentiehandtekening wordt afgehandeld door het licentiesubsysteem.

Het brandingsubsysteem zelf verwerkt geen externe invoer buiten de geresolvede brandingmodus. De licentie-envelop die de modus selecteert is ondertekend en de uitgever-handtekening ervan wordt door de runtime geverifieerd; het vervalsen van de modus zou het vervalsen van die handtekening vereisen.

  • BrandingMode heeft twee toestanden: None (standaard; geen wijziging van de uitvoer) en EvaluationWatermark.
  • Onder een betaalde (niet-evaluatie) licentie is de modus None en wordt de null-strategie geselecteerd: de uitvoer is identiek aan uitvoer die zonder enig brandingsubsysteem is geproduceerd.
  • Onder een evaluatielicentie tekent de strategie een diagonaal watermerk in een geïsoleerde grafische status en voegt evaluatiemarkeringen toe aan de producer- en subject-metadata.
  • Het configuratieobject is onveranderlijk en valideert zijn invoer (watermerktekst niet leeg, lettergrootte positief).

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

Het brandingsubsysteem wordt geleverd in het pakket nextpdf/enterprise, maar regelt het evaluatiegedrag over alle edities heen, inclusief Core- en Pro-only-implementaties die een evaluatielicentie gebruiken. Er is geen Core-only-brandingsubsysteem om op terug te vallen; een betaalde licentie in elke editie resolveert naar BrandingMode::None.

Er is geen apart Pro-brandingsubsysteem. Hetzelfde nextpdf/enterprise-brandingsubsysteem regelt het evaluatiegedrag voor Pro-implementaties; een betaalde Pro-licentie resolveert naar BrandingMode::None precies zoals een betaalde Enterprise-licentie dat doet.

Interne mechanismedetails blijven in de interne documentatie van de bron-repository en vallen buiten het bereik van deze handleiding.

De licentie-envelop die de brandingmodus selecteert is een ondertekend artefact waarvan de runtime de uitgever-handtekening verifieert; het provisioneren, vernieuwen en veilig opslaan van de licentie is de verantwoordelijkheid van de operator. Het subsysteem doet geen netwerkaanroepen en leest geen documentinhoud.

Deze pagina beschrijft alleen het runtimegedrag. Ze stelt of impliceert geen enkele garantie, certificering of geschiktheid, en vormt geen juridisch advies. De voorwaarden van je evaluatie of abonnement — inclusief welke branding van toepassing is en voor hoe lang — worden uitsluitend bepaald door je licentieovereenkomst. Raadpleeg die overeenkomst of neem contact op met sales.