コンテンツにスキップ
getnextpdf.com

Enterprise エディション

ブランディング

ブランディングサブシステムは、評価中に生成された PDF へ目に見える評価ブランディングを適用し、有料ライセンスの下では何も適用しません。これは nextpdf/enterprise パッケージで提供され、エディション全体にわたって評価の挙動を統制し、アプリケーションコードではなくライセンスによって完全に駆動されます。エンドツーエンドの評価ストーリーについては、トライアルと評価ブランディングを参照してください。このページでは、ブランディングサブシステム自体を説明します。

この機能は NextPDF Enterprisenextpdf/enterprise)に同梱され、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイメントは、この機能のクラスをロードしません。エディションを比較してライセンスを取得

ほとんどの Enterprise サーフェスとは異なり、これは専用の機能コード enterprise.branding を持ちます。Core 専用および Pro 専用のデプロイメントを含む、すべてのエディションにわたって評価の挙動を統制するためです。ブランディングモードは、実行時に署名済みライセンスエンベロープから解決されます。それを選択するアプリケーションフラグはなく、いずれのエディションの有料ライセンスも BrandingMode::None に解決されます。

Terminal window
composer require nextpdf/enterprise:^3

ランタイムには、BrandingMode によってモデル化された 2 つの状態を持つブランディングモードがあります。

  • None — 評価ブランディングなし。有料および通常の出力は決して変更されません。これがデフォルトです。
  • EvaluationWatermark — 目に見える評価ブランディングが、生成された PDF に適用されます。

BrandingStrategyFactory は、モードをストラテジーにマッピングします。None には NullBrandingStrategy(何も行わず、いかなる変更も生成しません)、EvaluationWatermark には EvaluationBrandingStrategy です。モードを選択するのは、アプリケーションコードではなくライセンス状態です。有料ライセンスがブランディングされた出力を生成することは決してなく、切り替えるべき本番ビルドも、反転させるべきコードフラグもありません。

このページでは、ランタイムの挙動のみを説明します。保証や、資格または法的効果に関する記述は一切行いません。お客様の評価またはサブスクリプションに適用される条件は、お客様のライセンス契約によってのみ定められます。

概念挙動
BrandingMode2 つの状態: None(デフォルト、変更なし)または EvaluationWatermark
BrandingStrategyFactoryBrandingMode をストラテジーに解決する。
EvaluationBrandingStrategy評価用透かしとメタデータ装飾を適用する。
NullBrandingStrategy有料 / 通常の出力向けの no-op ストラテジー。
EvaluationBrandingConfig不変の透かしテキスト、メタデータ装飾、フォントサイズ、グレーレベル、角度。
BrandingStrategy統合レイヤーが利用するコントラクト: isActive()buildPageWatermark()decorateProducer()decorateSubject()
BrandingApplicator解決されたストラテジーをレンダリング済み PDF バイトへ適用する。フェイルクローズド — アクティブなブランディングをマークできない場合は BrandingApplicationException をスローする。

このサブシステムは、ライセンスが解決したストラテジーを適用する統合レイヤー向けに、小さな呼び出し可能なサーフェスを公開します。アプリケーションコードがブランディングするかどうかを選択することはありません。以下のサンプルは、2 つのタッチポイントを示します。解決されたストラテジーの読み取りと、フェイルクローズドなアプリケーターによるレンダリング済みバイトのマークです。

ライセンスが選択したストラテジーを解決し、その挙動を読み取ります。有料ライセンスは 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 を選択すると、評価ストラテジーは次を行います。

  • 各ページに薄いグレーの斜めの透かしテキストを描画します。これは、周囲のコンテンツやお客様のレイアウトを変更しないよう、分離されたグラフィックス状態でページコンテンツストリームとしてレンダリングされます。
  • ドキュメントのプロデューサーメタデータに評価サフィックスを追加します。
  • ドキュメントのサブジェクトメタデータに評価プレフィックスを先頭付与します。

透かしは、Base14 フォントと回転行列を使用して、テキストをページ中央を横切って斜めに配置します。構成オブジェクトは不変であり、その入力を検証します(たとえば、透かしテキストは空にできず、フォントサイズは正でなければなりません)。

有料(非評価)ライセンスの下では、ブランディングモードは None であり、null ストラテジーが選択されます。透かしなし、プロデューサーサフィックスなし、サブジェクトプレフィックスなしです。出力は、ブランディングサブシステムがまったくない状態で生成された出力と同一です。評価ブランディングの除去にコード変更は不要です — 有料ライセンスをインストールすれば、次に生成されるドキュメントはブランディングされません。

  • ライセンス状態が評価スタイルのときにブランディングが現れます。これはライセンス状態を反映したものであり、不具合ではありません。ライセンスステータスを確認し、ライセンスポータルを通じて更新してください。
  • 透かしは、評価出力が明確になるよう、設計上、中央かつ斜めです。本番向けにチューニングすることを意図したものではありません。有料ライセンスはそれを完全に除去します。
  • プロデューサーおよびサブジェクトのメタデータは、評価中は評価マーカーを保持し、有料ライセンスの下では存在しません。

透かしは、小さく固定されたページごとのコンテンツストリームであり、生成時間やドキュメントサイズへの影響はごくわずかです。有料ライセンスの下では、サブシステムは何も行いません。ページのパフォーマンス予算は、ドキュメントのレンダリングを反映しています。

評価ブランディングは可視性マーカーであり、セキュリティ管理策ではありません。これは評価出力を示します。デジタル署名ではなく、署名として依拠してはなりません。改ざん検知性のある出力には、機能マトリクスで説明されている署名機能を使用してください。ブランディングモードを選択するライセンスは、発行者署名をランタイムが検証する署名済みエンベロープです。

ブランディングサブシステムは、固定された透かしとメタデータマーカーを追加します。ドキュメントコンテンツを読み取ったり送信したりすることはなく、ネットワーク呼び出しも行いません。

サブシステムはドキュメントコンテンツをログに記録しません。ブランディングモードを変更するライセンス状態の遷移は、ここではなく、ライセンスサブシステムを通じて表面化されます。

このページについて、標準への適合は主張しません。ランタイムの挙動のみを説明します。いかなる保証、認証、または資格も記述または示唆しません。お客様の評価またはサブスクリプションの条件は、お客様のライセンス契約によってのみ定められます。

このモジュールは暗号操作を実行しません。ライセンス署名の検証は、ライセンスサブシステムが処理します。

ブランディングサブシステム自体は、解決されたブランディングモード以外の外部入力を処理しません。モードを選択するライセンスエンベロープは署名されており、その発行者署名はランタイムによって検証されます。モードを偽装するには、その署名を偽造する必要があります。

  • BrandingMode には 2 つの状態があります: None(デフォルト。出力を変更しない)と EvaluationWatermark
  • 有料(非評価)ライセンスの下では、モードは None であり、null ストラテジーが選択されます。出力は、ブランディングサブシステムがまったくない状態で生成された出力と同一です。
  • 評価ライセンスの下では、ストラテジーは分離されたグラフィックス状態で斜めの透かしを描画し、プロデューサーおよびサブジェクトのメタデータに評価マーカーを追加します。
  • 構成オブジェクトは不変であり、その入力を検証します(透かしテキストは空でないこと、フォントサイズは正であること)。

このページでは、外部から観測できる挙動と、サポートされる公開 API サーフェスのみを説明します。内部の名前空間パス、ヘルパークラス、メカニズムの表、ランブックのファイル名、チケットプレフィックスは範囲外です。

ブランディングサブシステムは nextpdf/enterprise パッケージに同梱されていますが、評価ライセンスを使用する Core 専用および Pro 専用のデプロイメントを含め、すべてのエディションにわたって評価の挙動を統制します。フォールバックする Core 専用のブランディングサブシステムはありません。いずれのエディションでも、有料ライセンスは BrandingMode::None に解決されます。

個別の Pro ブランディングサブシステムはありません。同じ nextpdf/enterprise ブランディングサブシステムが、Pro デプロイメントの評価の挙動を統制します。有料の Pro ライセンスは、有料の Enterprise ライセンスとまったく同様に BrandingMode::None に解決されます。

内部のメカニズム詳細は、ソースリポジトリの内部ドキュメントにとどまり、この手引きの範囲外です。

ブランディングモードを選択するライセンスエンベロープは、発行者署名をランタイムが検証する署名済みアーティファクトです。ライセンスのプロビジョニング、更新、およびライセンスの安全な保管は、オペレーターの責任です。サブシステムはネットワーク呼び出しを行わず、ドキュメントコンテンツを読み取りません。

このページでは、ランタイムの挙動のみを説明します。いかなる保証、認証、または資格も記述または示唆せず、法的助言を構成するものでもありません。お客様の評価またはサブスクリプションの条件 — どのブランディングがどれだけの期間適用されるかを含む — は、お客様のライセンス契約によってのみ定められます。その契約をご確認いただくか、営業担当者にお問い合わせください。