İçeriğe geç

NextPDF Symfony paketini yapılandırma

Paketin tüm davranışını nextpdf kök anahtarı altında, config/packages/nextpdf.yaml dosyasında yapılandırın. Her anahtarın bir varsayılanı vardır; bu nedenle yalnızca değiştirmek istediğiniz değerleri ayarlamanız yeterlidir. Bu sayfa Configuration.php dosyasını birebir yansıtır.

NextPDF\Symfony\DependencyInjection\Configuration şemayı tanımlar. Geçersiz değerler, container’ın derlenmesi sırasında Symfony InvalidConfigurationException ile sonuçlanır.

AnahtarTürVarsayılanDoğrulama
page_formatenumA4şunlardan biri: A4, A3, A5, Letter, Legal, Tabloid
orientationenumPşunlardan biri: P, L
unitenummmşunlardan biri: pt, mm, cm, in
pdfascalarnullşunlardan biri: null, 4, 4e, 4f
fonts_pathscalar%kernel.project_dir%/resources/fonts
cache_pathscalar%kernel.cache_dir%/nextpdf
image_cache_mbinteger50en az 0
font_cache_lockingbooleantrue
preload_fontsdize listesi[]
AnahtarTürVarsayılan
icc_profile.rgbscalarnull
icc_profile.cmykscalarnull

Bu bölüm, PdfFactory tarafından oluşturulan her belgeye uygulanır.

AnahtarTürVarsayılan
defaults.creatorscalarNextPDF
defaults.authorscalar(boş)
defaults.languagescalaren
defaults.margin_topfloat10.0
defaults.margin_rightfloat10.0
defaults.margin_bottomfloat10.0
defaults.margin_leftfloat10.0
defaults.font_familyscalardejavusans
defaults.font_sizefloat12.0
defaults.trim_boxdeğişkennull
defaults.bleed_boxdeğişkennull

PdfFactory bu bölümden creator, author ve language değerlerini okur ve bunları her yeni belgeye uygular. Paket, kalan anahtarları motorun kullanması için container parametreleri olarak saklar.

Yalnızca nextpdf/artisan yüklü olup algılanmışsa uygulanır.

AnahtarTürVarsayılan
artisan.chrome_binaryscalarnull
artisan.render_timeoutinteger30
artisan.default_cssscalar(boş)
artisan.no_sandboxbooleanfalse
artisan.max_html_sizeinteger5000000

Yalnızca nextpdf/premium yüklüyse uygulanır. Paket ve Pro katmanı mevcut olduğunda desteklenen imzalama yapılandırması temel B-B profilidir. level düğümü, daha geniş NextPDF yapılandırma ailesiyle şema uyumluluğu için aşağıdaki dize değerlerini kabul eder. Bu paket B-B imzalama yeteneği sağlar. B-B dışındaki profiller NextPDF Premium belgelerinde ayrıca belgelenir; bu sayfada onlar için destek iddiasında bulunulmaz.

AnahtarTürVarsayılanDoğrulama
signature.enabledbooleanfalse
signature.certificatescalarnull
signature.private_keyscalarnull
signature.passwordscalar(boş)
signature.extra_certsdize listesi[]
signature.levelenumB-Bkabul edilen değer kümesi: B-B, B-T, B-LT, B-LTA (B-B sağlanır; B-T/B-LT/B-LTA şema uyumluluğu değerleridir, sağlanan Pro yeteneği değildir)

Derleyici geçişi, imzalayıcı servisini yalnızca signature.enabled true ve signature.certificate ayarlandığında kaydeder; aksi takdirde bölüm etkisizdir.

Zaman Damgası Yetkilisi (Time Stamp Authority, TSA) istemci yapılandırmasıdır; yapılandırıldığında Pro imzalama tarafından kullanılır.

AnahtarTürVarsayılan
tsa.urlscalarnull
tsa.usernamescalar(boş)
tsa.passwordscalar(boş)
tsa.certscalarnull
tsa.keyscalarnull
tsa.timeoutinteger30
tsa.allow_insecure_httpbooleanfalse
tsa.pinned_public_keysdize listesi[]
tsa.warn_on_key_rotationbooleantrue

Paket, bir TSA istemci servisini yalnızca tsa.url ayarlandığında kaydeder.

AnahtarTürVarsayılan
ocsp_cache.enabledbooleantrue
ocsp_cache.ttlinteger86400
ocsp_cache.directoryscalarnull

Asenkron oluşturma ayarlarıdır; symfony/messenger yüklendiğinde kullanılır.

AnahtarTürVarsayılan
messenger.transportscalarasync
messenger.timeoutinteger120
messenger.retriesinteger3

Her bölümü varsayılan değerleriyle gösteren bir yapılandırma dosyası:

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

Paket, servis tanımlarını config/services.php dosyasından yükler. Aşağıdaki tablo bu dosyayı birebir yansıtır.

Servis kimliğiPaylaşımlıGenelNotlar
NextPDF\Typography\FontRegistryevetdeğerini nextpdf.fonts_path parametresinden alır; isteğe bağlı PHP Standard Recommendation 3 (PSR-3) günlükçüsü
NextPDF\Contracts\FontRegistryInterface(takma ad)evetşunun takma adı: FontRegistry
NextPDF\Graphics\ImageRegistryevetsınırlı LRU (en uzun süredir kullanılmayanı çıkarma) yapısı; kernel.reset etiketli (reset)
NextPDF\Core\DocumentFactoryevetiki kayıt defterini paylaşır
NextPDF\Contracts\DocumentFactoryInterface(takma ad)evetşunun takma adı: DocumentFactory
NextPDF\Symfony\Service\PdfFactoryevetevetşunları okur: defaults, pdfa ve artisan parametreleri
NextPDF\Contracts\PdfDocumentInterfacehayırevetfabrika [PdfFactory, create]
NextPDF\Core\Document(takma ad)şunun takma adı: PdfDocumentInterface
nextpdf.document(takma ad)evetşunun takma adı: PdfDocumentInterface
NextPDF\Symfony\Http\PdfResponseevetdurumsuz yardımcı

Paket ayrıca EInvoice sözleşme bağlamalarını (EmbedderInterface, ValidatorInterface, ProfileInterface, SchematronRunnerInterface) yalnızca ilgili Premium uygulama sınıfları mevcut olduğunda kaydeder. Her servis paylaşımsızdır; bu nedenle çağıran taraflar yeni bir örnek alır. Her çağrıya ait ayrıştırıcı durumu istekler arasında asla sızmaz.

Paylaşımlı ile paylaşımsız karşılaştırması

“Paylaşımlı ile paylaşımsız karşılaştırması” başlıklı bölüm

nextpdf.document (ve takma adları) paylaşımsızdır: container’ın her çözümlemesi ayrı bir belge döndürür. PHP Standard Recommendation 11 (PSR-11) kapsamında bir container, aynı tanımlayıcıyla yapılan ardışık get() çağrılarında farklı bir değer döndürebilir; bkz. PSR-11 §1.1.2. Yazı tipi kayıt defteri paylaşımlıdır ve ön ısıtmadan sonra kilitlenir. Yapısal yazı tipi verileri işlem başına bir kez ayrıştırılır ve istek sırasında değiştirilemez.

Hem FontRegistry hem de ImageRegistry servisleri isteğe bağlı bir Psr\Log\LoggerInterface kabul eder; Symfony bunu nullOnInvalid() ile bağlar. Günlükçü, PSR-3 günlükçü sözleşmesiyle tutarlı olarak isteğe bağlı, değiştirilebilir bir iş birlikçisi olarak kalır.

PdfFactory, PdfResponse, belge fabrikası arabirimi ve yazı tipi kayıt defteri arabirimi geneldir. Bunlar container’dan alınabilir veya otomatik bağlanan denetleyicilerde ve servislerde tür ipucu olarak belirtilebilir. NextPDF\Symfony\Service\PdfFactory için kurucu enjeksiyonu önerilen giriş noktasıdır.

  • Pro olmadan pdfa ayarlanması — değer saklanır, ancak yoksayılır. PdfFactory, Portable Document Format/Archival (PDF/A) biçimini yalnızca Pro uzantısı derleme zamanında algılandığında uygular.
  • image_cache_mb: 0 — geçerlidir; görüntü LRU önbelleğini devre dışı bırakır. Negatif değerler derleme zamanında reddedilir.
  • signature.certificate olmadan signature.enabled: true — imzalayıcı servisi kaydedilmez; yapılandırma tasarım gereği sessizce etkisizdir.
  • %kernel.*% yer tutucularıfonts_path ve cache_path varsayılanları Symfony container parametrelerini kullanır; yalnızca tam yol gerektiğinde bunları mutlak yollarla geçersiz kılın.

Bu tablodaki her satır, bu sayfadaki normatif bir iddiadır ve kapılı standart geliştirme kuruluşu (SDO) külliyatından tam 64 onaltılık karakterlik bir reference_id değerine sabitlenmiştir. Külliyat bildirimi ve geri alma aktarımı dahil olmak üzere kaynak bilgisi _sidecars/rag-citations.yaml dosyasındadır.

BelirtimMaddereference_idİddia
PSR-11psr_11_container#1.1.2.p3.bget() çözümleme başına farklı değerler döndürebilir
PSR-3psr_3_logger#x3.p17İsteğe bağlı LoggerInterface iş birlikçisi

signature ve tsa bölümleri yalnızca nextpdf/premium (Pro) yüklendiğinde uygulanır. Bu isteğe bağlı Pro yeteneği, burada belgelenen Core paketinde herhangi bir kod değişikliği gerektirmez. Bkz. </get-license/?intent=symfony-pro>.

  • /integrations/symfony/install/ — paketi yükleyip kaydedin.
  • /integrations/symfony/overview/ — yetenek özetini gözden geçirin.
  • /integrations/symfony/production-usage/ — worker güvenliği ve asenkron desenler.
  • /integrations/symfony/boot-and-discovery/ — yapılandırmanın açılış sırasında nasıl çözümlendiğini görün.