Ga naar inhoud

De NextPDF Symfony-bundle configureren

Configureer het volledige gedrag van de bundle onder de hoofdsleutel nextpdf in config/packages/nextpdf.yaml. Elke sleutel heeft een standaardwaarde, dus je hoeft alleen de waarden in te stellen die je wilt wijzigen. Deze pagina komt exact overeen met Configuration.php.

NextPDF\Symfony\DependencyInjection\Configuration definieert het schema. Ongeldige waarden laten de containerbuild mislukken met een Symfony InvalidConfigurationException.

SleutelTypeStandaardwaardeValidatie
page_formatenumA4een van A4, A3, A5, Letter, Legal, Tabloid
orientationenumPeen van P, L
unitenummmeen van pt, mm, cm, in
pdfascalarnulleen van null, 4, 4e, 4f
fonts_pathscalar%kernel.project_dir%/resources/fonts
cache_pathscalar%kernel.cache_dir%/nextpdf
image_cache_mbinteger50minimum 0
font_cache_lockingbooleantrue
preload_fontslijst met strings[]
KeyTypeDefault
icc_profile.rgbscalarnull
icc_profile.cmykscalarnull

Geldt voor elk document dat PdfFactory produceert.

KeyTypeDefault
defaults.creatorscalarNextPDF
defaults.authorscalar(leeg)
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_boxvariablenull
defaults.bleed_boxvariablenull

PdfFactory leest creator, author en language uit deze sectie en past ze toe op elk nieuw document. De bundle slaat de overige sleutels op als containerparameters voor de engine.

Geldt alleen wanneer nextpdf/artisan is geïnstalleerd en gedetecteerd.

KeyTypeDefault
artisan.chrome_binaryscalarnull
artisan.render_timeoutinteger30
artisan.default_cssscalar(leeg)
artisan.no_sandboxbooleanfalse
artisan.max_html_sizeinteger5000000

Geldt alleen wanneer nextpdf/premium is geïnstalleerd. Wanneer de bundle en de Pro-laag aanwezig zijn, is de ondersteunde ondertekeningsconfiguratie het baseline B-B-profiel. De node level accepteert de onderstaande stringwaarden voor schemacompatibiliteit met de bredere NextPDF-configuratiefamilie. Deze bundle levert ondertekeningsmogelijkheden voor B-B. Profielen buiten B-B worden afzonderlijk gedocumenteerd in de NextPDF Premium-documentatie; ondersteuning daarvoor wordt hier niet geclaimd.

KeyTypeDefaultValidation
signature.enabledbooleanfalse
signature.certificatescalarnull
signature.private_keyscalarnull
signature.passwordscalar(leeg)
signature.extra_certslijst met strings[]
signature.levelenumB-Bgeaccepteerde set: B-B, B-T, B-LT, B-LTA (B-B geleverd; B-T/B-LT/B-LTA zijn schemacompatibiliteitswaarden, geen geleverde Pro-mogelijkheid)

De compiler-pass registreert alleen een signer-service wanneer signature.enabled true is en signature.certificate is ingesteld; anders is de sectie inert.

Configuratie van de Time Stamp Authority (TSA)-client, gebruikt door Pro-ondertekening wanneer die is geconfigureerd.

KeyTypeDefault
tsa.urlscalarnull
tsa.usernamescalar(leeg)
tsa.passwordscalar(leeg)
tsa.certscalarnull
tsa.keyscalarnull
tsa.timeoutinteger30
tsa.allow_insecure_httpbooleanfalse
tsa.pinned_public_keyslijst met strings[]
tsa.warn_on_key_rotationbooleantrue

De bundle registreert alleen een TSA-clientservice wanneer tsa.url is ingesteld.

KeyTypeDefault
ocsp_cache.enabledbooleantrue
ocsp_cache.ttlinteger86400
ocsp_cache.directoryscalarnull

Instellingen voor asynchrone generatie, gebruikt wanneer symfony/messenger is geïnstalleerd.

KeyTypeDefault
messenger.transportscalarasync
messenger.timeoutinteger120
messenger.retriesinteger3

Een configuratiebestand dat elke sectie met de standaardwaarden toont:

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

De bundle laadt de servicedefinities uit config/services.php. De onderstaande tabel komt exact overeen met dat bestand.

Service-idGedeeldPubliekOpmerkingen
NextPDF\Typography\FontRegistryjaopgebouwd uit nextpdf.fonts_path; optionele PHP Standard Recommendation 3 (PSR-3)-logger
NextPDF\Contracts\FontRegistryInterface(alias)jaalias van FontRegistry
NextPDF\Graphics\ImageRegistryjabegrensde least-recently-used (LRU); getagd kernel.reset (reset)
NextPDF\Core\DocumentFactoryjadeelt de twee registry’s
NextPDF\Contracts\DocumentFactoryInterface(alias)jaalias van DocumentFactory
NextPDF\Symfony\Service\PdfFactoryjajaleest de parameters defaults, pdfa en artisan
NextPDF\Contracts\PdfDocumentInterfaceneejafactory [PdfFactory, create]
NextPDF\Core\Document(alias)alias van PdfDocumentInterface
nextpdf.document(alias)jaalias van PdfDocumentInterface
NextPDF\Symfony\Http\PdfResponsejastateless helper

De bundle registreert ook EInvoice-contractbindingen (EmbedderInterface, ValidatorInterface, ProfileInterface, SchematronRunnerInterface) alleen wanneer de bijbehorende Premium-implementatieklassen bestaan. Elke service is niet-gedeeld, dus aanroepers ontvangen telkens een nieuwe instantie. Parserstatus van één aanroep lekt nooit naar andere requests.

nextpdf.document (en de aliassen ervan) is niet-gedeeld: elke containerresolutie retourneert een afzonderlijk document. Onder PHP Standard Recommendation 11 (PSR-11) kan een container bij opeenvolgende get()-aanroepen met dezelfde identifier een andere waarde retourneren; zie PSR-11 §1.1.2. De font-registry is gedeeld en wordt na de warm-up vergrendeld. Structurele lettertypegegevens worden eenmaal per proces geparseerd en kunnen tijdens een request niet worden gewijzigd.

De services FontRegistry en ImageRegistry accepteren een optionele Psr\Log\LoggerInterface; Symfony bindt deze met nullOnInvalid(). De logger blijft een optionele, verwisselbare collaborator, in lijn met het PSR-3 logger-contract.

PdfFactory, PdfResponse, de document-factory-interface en de font-registry-interface zijn publiek. Je kunt ze uit de container ophalen of als type-hint gebruiken in autowired controllers en services. Constructorinjectie van NextPDF\Symfony\Service\PdfFactory is het aanbevolen toegangspunt.

  • pdfa ingesteld zonder Pro — de waarde wordt opgeslagen maar genegeerd. PdfFactory past Portable Document Format/Archival (PDF/A) alleen toe wanneer de Pro-extensie tijdens het compileren wordt gedetecteerd.
  • image_cache_mb: 0 — geldig; schakelt de afbeeldings-LRU-cache uit. Negatieve waarden worden bij het bouwen geweigerd.
  • signature.enabled: true zonder signature.certificate — de signer-service wordt niet geregistreerd; de configuratie blijft bewust stilzwijgend inert.
  • %kernel.*%-placeholders — de standaardwaarden van fonts_path en cache_path gebruiken Symfony-containerparameters; overschrijf alleen met absolute paden wanneer het letterlijke pad vereist is.

Elke rij is een normatieve claim op deze pagina, vastgepind aan een volledige 64-hex reference_id uit het gated corpus van de standards development organization (SDO). De herkomst, inclusief corpus-manifest en retrieval-transport, staat in _sidecars/rag-citations.yaml.

SpecClausulereference_idClaim
PSR-11psr_11_container#1.1.2.p3.bget() kan per resolutie verschillende waarden retourneren
PSR-3psr_3_logger#x3.p17Optionele LoggerInterface-collaborator

De secties signature en tsa zijn alleen van toepassing wanneer nextpdf/premium (Pro) is geïnstalleerd. Voor deze optionele Pro-mogelijkheid is geen codewijziging nodig in de hier gedocumenteerde Core-bundle. Zie </get-license/?intent=symfony-pro>.

  • /integrations/symfony/install/ — installeer en registreer de bundle.
  • /integrations/symfony/overview/ — bekijk het overzicht van de mogelijkheden.
  • /integrations/symfony/production-usage/ — worker-veiligheid en asynchrone patronen.
  • /integrations/symfony/boot-and-discovery/ — zie hoe de configuratie tijdens het opstarten wordt bepaald.