コンテンツにスキップ

NextPDF Symfony バンドルの構成

バンドルの動作はすべて、nextpdf ルートキー(config/packages/nextpdf.yaml 内)配下で構成します。すべてのキーに既定値があるため、必要な項目だけを明示的に設定します。このページの内容は Configuration.php を正確に反映しています。

スキーマは NextPDF\Symfony\DependencyInjection\Configuration で定義されています。無効な値を指定すると、コンテナーのビルド時に Symfony の InvalidConfigurationException で失敗します。

キー既定値検証
page_format列挙型A4次のいずれか:A4A3A5LetterLegalTabloid
orientation列挙型P次のいずれか:PL
unit列挙型mm次のいずれか:ptmmcmin
pdfaスカラーnull次のいずれか:null44e4f
fonts_pathスカラー%kernel.project_dir%/resources/fonts
cache_pathスカラー%kernel.cache_dir%/nextpdf
image_cache_mb整数50最小値 0
font_cache_lockingブール値true
preload_fonts文字列のリスト[]
キー既定値
icc_profile.rgbスカラーnull
icc_profile.cmykスカラーnull

適用対象は PdfFactory が生成するすべてのドキュメントです。

キー既定値
defaults.creatorスカラーNextPDF
defaults.authorスカラー(空)
defaults.languageスカラーen
defaults.margin_top浮動小数点数10.0
defaults.margin_right浮動小数点数10.0
defaults.margin_bottom浮動小数点数10.0
defaults.margin_left浮動小数点数10.0
defaults.font_familyスカラーdejavusans
defaults.font_size浮動小数点数12.0
defaults.trim_box可変null
defaults.bleed_box可変null

PdfFactory はこのセクションから creatorauthorlanguage を読み取り、新しいドキュメントごとに適用します。残りのキーは、エンジン側で使用できるようコンテナーパラメーターとして格納されます。

有効になるのは、nextpdf/artisan がインストールされ、検出された場合のみです。

キー既定値
artisan.chrome_binaryスカラーnull
artisan.render_timeout整数30
artisan.default_cssスカラー(空)
artisan.no_sandboxブール値false
artisan.max_html_size整数5000000

有効になるのは、nextpdf/premium がインストールされている場合のみです。バンドルと Pro ティアの両方が存在する場合、サポートされる署名構成は ベースライン B-B プロファイルです。level ノードは、より広い NextPDF 構成ファミリーとのスキーマ互換性を保つため、以下の文字列値を受け付けます。このバンドルが提供する署名機能は B-B です。B-B を超えるプロファイルについては NextPDF Premium のドキュメントで別途説明されており、このページでは提供を主張しません。

キー既定値検証
signature.enabledブール値false
signature.certificateスカラーnull
signature.private_keyスカラーnull
signature.passwordスカラー(空)
signature.extra_certs文字列のリスト[]
signature.level列挙型B-B受け付ける値のセット:B-BB-TB-LTB-LTA(B-B を提供。B-T/B-LT/B-LTA はスキーマ互換性のための値であり、提供される Pro 機能ではありません)

コンパイラーパスは、signature.enabled が true かつ signature.certificate が設定されている場合にのみ、署名者サービスを登録します。それ以外の場合、このセクションは無効になります。

タイムスタンプ局(TSA)のクライアント構成です。設定されている場合は、Pro の署名で使用されます。

キー既定値
tsa.urlスカラーnull
tsa.usernameスカラー(空)
tsa.passwordスカラー(空)
tsa.certスカラーnull
tsa.keyスカラーnull
tsa.timeout整数30
tsa.allow_insecure_httpブール値false
tsa.pinned_public_keys文字列のリスト[]
tsa.warn_on_key_rotationブール値true

TSA クライアントサービスは、tsa.url が設定されている場合にのみ登録されます。

キー既定値
ocsp_cache.enabledブール値true
ocsp_cache.ttl整数86400
ocsp_cache.directoryスカラーnull

非同期生成を調整する項目です。symfony/messenger がインストールされている場合に使用されます。

キー既定値
messenger.transportスカラーasync
messenger.timeout整数120
messenger.retries整数3

各セクションと既定値を示す構成ファイル:

nextpdf:
page_format: A4
orientation: P
unit: mm
pdfa: ~
fonts_path: '%kernel.project_dir%/resources/fonts'
cache_path: '%kernel.cache_dir%/nextpdf'
image_cache_mb: 50
font_cache_locking: true
preload_fonts: []
icc_profile:
rgb: ~
cmyk: ~
defaults:
creator: NextPDF
author: ''
language: en
margin_top: 10.0
margin_right: 10.0
margin_bottom: 10.0
margin_left: 10.0
font_family: dejavusans
font_size: 12.0
trim_box: ~
bleed_box: ~
artisan:
chrome_binary: ~
render_timeout: 30
default_css: ''
no_sandbox: false
max_html_size: 5000000
signature:
enabled: false
certificate: ~
private_key: ~
password: ''
extra_certs: []
level: B-B
tsa:
url: ~
username: ''
password: ''
cert: ~
key: ~
timeout: 30
allow_insecure_http: false
pinned_public_keys: []
warn_on_key_rotation: true
ocsp_cache:
enabled: true
ttl: 86400
directory: ~
messenger:
transport: async
timeout: 120
retries: 3

バンドルは、サービス定義を config/services.php から読み込みます。以下の表は、そのファイルの内容を正確に反映しています。

サービス ID共有公開備考
NextPDF\Typography\FontRegistryはい次から構築:nextpdf.fonts_path。PSR-3 ロガーは任意
NextPDF\Contracts\FontRegistryInterface(エイリアス)はい次のエイリアス:FontRegistry
NextPDF\Graphics\ImageRegistryはい上限付き LRU。kernel.reset をタグ付け(reset
NextPDF\Core\DocumentFactoryはい2 つのレジストリを共有
NextPDF\Contracts\DocumentFactoryInterface(エイリアス)はい次のエイリアス:DocumentFactory
NextPDF\Symfony\Service\PdfFactoryはいはい次のパラメーターを読み取り:defaultspdfaartisan の各値
NextPDF\Contracts\PdfDocumentInterfaceいいえはいファクトリー [PdfFactory, create]
NextPDF\Core\Document(エイリアス)次のエイリアス:PdfDocumentInterface
nextpdf.document(エイリアス)はい次のエイリアス:PdfDocumentInterface
NextPDF\Symfony\Http\PdfResponseはいステートレスなヘルパー

バンドルはさらに、EInvoice の契約バインディング(EmbedderInterfaceValidatorInterfaceProfileInterfaceSchematronRunnerInterface)を、対応する Premium 実装クラスが存在する場合に のみ 登録します。いずれも非共有として登録されるため、呼び出し元には毎回新しいインスタンスが渡されます。呼び出しごとのパーサー状態がリクエストをまたいで漏れることはありません。

nextpdf.document(およびそのエイリアス)は 非共有 です。コンテナーで resolve(解決)されるたびに、別個のドキュメントが返されます。PSR-11 では、コンテナーが同じ識別子に対する連続した get() 呼び出しで異なる値を返すことが許可されています(PSR-11 §1.1.2)。フォントレジストリは共有され、ウォームアップ後にロックされます。そのため、構造的なフォントデータはプロセスごとに 1 回だけ解析され、リクエスト中に変更することはできません。

サービス FontRegistryImageRegistry は、任意の Psr\Log\LoggerInterface を受け付け、nullOnInvalid() でバインドされます。ロガーは任意指定の協調オブジェクトとして差し替え可能であり、PSR-3 ロガー契約(PSR-3)と一致しています。

PdfFactoryPdfResponse、ドキュメントファクトリーインターフェイス、フォントレジストリインターフェイスは公開されています。これらはコンテナーから取得でき、オートワイヤリングされたコントローラーやサービスで型ヒントとして指定することもできます。NextPDF\Symfony\Service\PdfFactory のコンストラクター注入が推奨されるエントリーポイントです。

  • Pro なしで pdfa を設定した場合 — 値は格納されますが、無視されます。PdfFactory は、コンパイル時に Pro 拡張が検出された場合にのみ PDF/A を適用します。
  • image_cache_mb: 0 — 有効な設定です。画像 LRU キャッシュを無効にします。負の値はビルド時に拒否されます。
  • signature.certificate なしで signature.enabled: true を設定した場合 — 署名者サービスは登録されません。構成は設計上、警告なしで無効になります。
  • %kernel.*% プレースホルダーfonts_pathcache_path の既定値は Symfony のコンテナーパラメーターを使用します。リテラルパスが必要な場合にのみ絶対パスで上書きしてください。

各行は、このページに含まれる規範的な主張であり、ゲート付き SDO コーパス内の完全な 64 桁 16 進数の reference_id に固定されています。来歴(コーパスマニフェスト、取得トランスポート)は _sidecars/rag-citations.yaml にあります。

仕様条項リファレンス ID主張
PSR-11psr_11_container#1.1.2.p3.bget() は解決ごとに異なる値を返す可能性がある
PSR-3psr_3_logger#x3.p17任意指定の LoggerInterface 協調オブジェクト

signature セクションと tsa セクションは、nextpdf/premium(Pro)がインストールされている場合にのみ有効になります。これは任意で利用できる Pro 機能です。ここで説明する Core バンドルでは、これを採用するためのコード変更は不要です。</get-license/?intent=symfony-pro> を参照してください。

  • /integrations/symfony/install/ — バンドルのインストールと登録。
  • /integrations/symfony/overview/ — 機能の概要。
  • /integrations/symfony/production-usage/ — ワーカーの安全性と非同期パターン。
  • /integrations/symfony/boot-and-discovery/ — ブート時の構成解決。