Lewati ke konten

Mengonfigurasi bundel Symfony NextPDF

Atur seluruh perilaku bundel di bawah kunci root nextpdf dalam config/packages/nextpdf.yaml. Setiap kunci memiliki nilai standar, jadi Anda hanya perlu menetapkan nilai yang ingin diubah. Halaman ini mencerminkan Configuration.php secara persis.

NextPDF\Symfony\DependencyInjection\Configuration mendefinisikan skemanya. Nilai yang tidak valid akan menggagalkan build container dengan Symfony InvalidConfigurationException.

KunciTipeStandarValidasi
page_formatenumA4salah satu dari A4, A3, A5, Letter, Legal, Tabloid
orientationenumPsalah satu dari P, L
unitenummmsalah satu dari pt, mm, cm, in
pdfaskalarnullsalah satu dari null, 4, 4e, 4f
fonts_pathskalar%kernel.project_dir%/resources/fonts
cache_pathskalar%kernel.cache_dir%/nextpdf
image_cache_mbbilangan bulat50minimum 0
font_cache_lockingbooleantrue
preload_fontsdaftar string[]
KunciTipeStandar
icc_profile.rgbskalarnull
icc_profile.cmykskalarnull

Berlaku untuk setiap dokumen yang dihasilkan oleh PdfFactory.

KunciTipeStandar
defaults.creatorskalarNextPDF
defaults.authorskalar(kosong)
defaults.languageskalaren
defaults.margin_topfloat10.0
defaults.margin_rightfloat10.0
defaults.margin_bottomfloat10.0
defaults.margin_leftfloat10.0
defaults.font_familyskalardejavusans
defaults.font_sizefloat12.0
defaults.trim_boxvariabelnull
defaults.bleed_boxvariabelnull

PdfFactory membaca creator, author, dan language dari bagian ini, lalu menerapkannya pada setiap dokumen baru. Bundel menyimpan kunci lainnya sebagai parameter container untuk digunakan oleh engine.

Hanya berlaku ketika nextpdf/artisan terpasang dan terdeteksi.

KunciTipeStandar
artisan.chrome_binaryskalarnull
artisan.render_timeoutbilangan bulat30
artisan.default_cssskalar(kosong)
artisan.no_sandboxbooleanfalse
artisan.max_html_sizebilangan bulat5000000

Hanya berlaku ketika nextpdf/premium terpasang. Ketika bundel dan tingkat Pro tersedia, konfigurasi penandatanganan yang didukung adalah profil baseline B-B. Node level menerima nilai string di bawah ini untuk kompatibilitas skema dengan rangkaian konfigurasi NextPDF yang lebih luas. Bundel ini menyediakan kemampuan penandatanganan B-B. Profil di luar B-B didokumentasikan secara terpisah dalam dokumentasi NextPDF Premium dan tidak diklaim di sini.

KunciTipeStandarValidasi
signature.enabledbooleanfalse
signature.certificateskalarnull
signature.private_keyskalarnull
signature.passwordskalar(kosong)
signature.extra_certsdaftar string[]
signature.levelenumB-Bhimpunan yang diterima: B-B, B-T, B-LT, B-LTA (B-B disediakan; B-T/B-LT/B-LTA adalah nilai untuk kompatibilitas skema, bukan kemampuan Pro yang disediakan)

Compiler pass mendaftarkan layanan penandatangan hanya ketika signature.enabled bernilai true dan signature.certificate telah diatur; jika tidak, bagian ini menjadi tidak aktif.

Konfigurasi klien Time Stamp Authority (TSA), digunakan oleh penandatanganan Pro jika dikonfigurasi.

KunciTipeStandar
tsa.urlskalarnull
tsa.usernameskalar(kosong)
tsa.passwordskalar(kosong)
tsa.certskalarnull
tsa.keyskalarnull
tsa.timeoutbilangan bulat30
tsa.allow_insecure_httpbooleanfalse
tsa.pinned_public_keysdaftar string[]
tsa.warn_on_key_rotationbooleantrue

Bundel mendaftarkan layanan klien TSA hanya ketika tsa.url telah diatur.

KunciTipeStandar
ocsp_cache.enabledbooleantrue
ocsp_cache.ttlbilangan bulat86400
ocsp_cache.directoryskalarnull

Pengaturan untuk pembuatan secara asinkron, digunakan ketika symfony/messenger terpasang.

KunciTipeStandar
messenger.transportskalarasync
messenger.timeoutbilangan bulat120
messenger.retriesbilangan bulat3

Berkas konfigurasi yang menampilkan setiap bagian beserta nilai standarnya:

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

Bundel memuat definisi layanannya dari config/services.php. Tabel di bawah ini mencerminkan berkas tersebut secara persis.

ID layananDibagikanPublikCatatan
NextPDF\Typography\FontRegistryyadibangun dari nextpdf.fonts_path; logger PHP Standard Recommendation 3 (PSR-3) bersifat opsional
NextPDF\Contracts\FontRegistryInterface(alias)yaalias dari FontRegistry
NextPDF\Graphics\ImageRegistryyaleast-recently-used (LRU) dengan batas; diberi tag kernel.reset (reset)
NextPDF\Core\DocumentFactoryyamenggunakan kedua registri bersama
NextPDF\Contracts\DocumentFactoryInterface(alias)yaalias dari DocumentFactory
NextPDF\Symfony\Service\PdfFactoryyayamembaca parameter defaults, pdfa, dan artisan
NextPDF\Contracts\PdfDocumentInterfacetidakyafactory [PdfFactory, create]
NextPDF\Core\Document(alias)alias dari PdfDocumentInterface
nextpdf.document(alias)yaalias dari PdfDocumentInterface
NextPDF\Symfony\Http\PdfResponseyahelper stateless

Bundel juga mendaftarkan pengikatan kontrak EInvoice (EmbedderInterface, ValidatorInterface, ProfileInterface, SchematronRunnerInterface) hanya ketika kelas implementasi Premium yang sesuai tersedia. Setiap layanan tidak dibagikan, sehingga pemanggil menerima instans baru. Keadaan parser per panggilan tidak pernah bocor antarpermintaan.

nextpdf.document (dan aliasnya) tidak dibagikan: setiap resolusi container mengembalikan dokumen yang berbeda. Berdasarkan PHP Standard Recommendation 11 (PSR-11), sebuah container dapat mengembalikan nilai yang berbeda pada pemanggilan get() berturut-turut dengan pengidentifikasi yang sama; lihat PSR-11 §1.1.2. Registri fon dibagikan dan dikunci setelah warmup. Data fon struktural diurai sekali per proses dan tidak dapat dimutasi selama permintaan berlangsung.

Layanan FontRegistry dan ImageRegistry menerima Psr\Log\LoggerInterface opsional; Symfony mengikatnya dengan nullOnInvalid(). Logger tetap menjadi kolaborator opsional yang dapat ditukar, sesuai dengan kontrak logger PSR-3.

PdfFactory, PdfResponse, antarmuka factory dokumen, dan antarmuka registri fon bersifat publik. Semuanya dapat diambil dari container atau diberi type hint pada controller dan layanan yang di-autowire. Constructor injection NextPDF\Symfony\Service\PdfFactory adalah titik masuk yang direkomendasikan.

  • pdfa diatur tanpa Pro — nilai disimpan tetapi diabaikan. PdfFactory menerapkan Portable Document Format/Archival (PDF/A) hanya ketika ekstensi Pro terdeteksi pada saat kompilasi.
  • image_cache_mb: 0 — valid; menonaktifkan cache LRU gambar. Nilai negatif ditolak pada saat build.
  • signature.enabled: true tanpa signature.certificate — layanan penandatangan tidak didaftarkan; konfigurasi menjadi tidak aktif secara diam-diam sesuai rancangan.
  • %kernel.*% placeholderfonts_path dan cache_path menggunakan parameter container Symfony; ganti dengan path absolut hanya ketika path literal diperlukan.

Setiap baris merupakan klaim normatif pada halaman ini, ditautkan ke reference_id 64-heks lengkap dari korpus standards development organization (SDO) yang berpagar. Provenans, termasuk manifes korpus dan transport pengambilan, berada di _sidecars/rag-citations.yaml.

SpesifikasiKlausareference_idKlaim
PSR-11psr_11_container#1.1.2.p3.bget() dapat mengembalikan nilai yang berbeda per resolusi
PSR-3psr_3_logger#x3.p17Kolaborator LoggerInterface bersifat opsional

Bagian signature dan tsa hanya berlaku ketika nextpdf/premium (Pro) terpasang. Kemampuan Pro opsional ini tidak memerlukan perubahan kode pada bundel Core yang didokumentasikan di sini. Lihat </get-license/?intent=symfony-pro>.

  • /integrations/symfony/install/ — instal dan daftarkan bundel.
  • /integrations/symfony/overview/ — tinjau ringkasan kemampuan.
  • /integrations/symfony/production-usage/ — keamanan worker dan pola asinkron.
  • /integrations/symfony/boot-and-discovery/ — lihat bagaimana konfigurasi diselesaikan selama boot.