Ga naar inhoud

Een integratie kiezen

Gebruik deze pagina om je use case te koppelen aan de integratie die deze afhandelt. Elke aanbeveling komt uitsluitend voort uit de composer.json-beschrijving en het opgegeven doel van het pakket, die beide rechtstreeks uit de bronrepository worden gelezen. Wanneer twee integraties elkaar overlappen, benoemt deze pagina de onderscheidende factor, zodat je met vertrouwen kunt kiezen.

Zoek de rij die bij je situatie past en begin daar.

Je hebt …GebruikWaarom (geverifieerd doel)
Een Laravel 12-applicatienextpdf/laravelIntegratie met het Laravel-framework: service provider, facade en helpers voor Portable Document Format (PDF)-responses.
Een Symfony 7-applicatienextpdf/symfonySymfony-bundle: dependency injection (DI)-services en helpers voor PDF-responses.
Een CodeIgniter 4-applicatienextpdf/codeigniterCodeIgniter 4-services, library-wrapper en helpers voor PDF-responses.
Een PHP-app zonder frameworknextpdf/core rechtstreeksEr is geen framework-integratie nodig; de engine is een eenvoudige library.
HTML waarvoor je een Cascading Style Sheets (CSS)-engine van een browser nodig hebt en Chrome kunt uitvoerennextpdf/artisanChrome DevTools Protocol (CDP)-renderer voor HTML die een CSS-lay-out op browserniveau nodig heeft.
Een Office-document dat moet worden geconverteerd, zoals DOCX, XLSX of ODTnextpdf/gotenbergOffice-naar-PDF-conversie via een Gotenberg-microservice.
Je moet renderen zonder dat er een browserproces hoeft te draaiennextpdf/cloudflareServerless renderen via de Cloudflare Browser Rendering API aan de edge.
Code die is geschreven voor een verouderde PDF-librarynextpdf/compat-legacyCompatibiliteitslaag voor een verouderde PDF-library; roep NextPDF aan zonder de aanroeplocaties te herschrijven.
Een runtime die vastzit op PHP 8.1 / 7.4nextpdf/backport-builderRector-downgradepijplijn die een 8.1 / 7.4-target van de engine bouwt.
Externe aanroepers, een andere taal of een artificial intelligence (AI)-systeemnextpdf/serverNextPDF Connect: Representational State Transfer (REST)-, gRPC- en Model Context Protocol-interface voor externe uitvoering.

HTML naar PDF renderen: Artisan versus Gotenberg versus Cloudflare versus core

Sectie met titel “HTML naar PDF renderen: Artisan versus Gotenberg versus Cloudflare versus core”

Alle drie de renderer-bruggen zetten markup om in PDF. Ze verschillen in werking, niet in kwaliteit. Laat dat operationele verschil de doorslag geven.

  • nextpdf/artisan stuurt headless Chrome aan via het Chrome DevTools Protocol. Het heeft een Chrome-proces nodig dat de applicatie kan bereiken. Kies dit wanneer je dat proces kunt beheren en het document een CSS-engine van een browser nodig heeft.
  • nextpdf/gotenberg roept een Gotenberg-microservice buiten het proces aan via HTTP. Kies dit wanneer het renderen moet worden geïsoleerd in een eigen service, of wanneer de invoer een Office-document is. Gotenberg is de enige van de drie waarvan het opgegeven doel Office-naar-PDF omvat.
  • nextpdf/cloudflare roept de Cloudflare Browser Rendering API aan. Kies dit wanneer je edge/serverless renderen wilt zonder een browserproces dat moet draaien of worden gepatcht.
  • De in-process NextPDF-core-HTML-pijplijn heeft niets van het bovenstaande nodig. Gebruik een renderer-brug alleen wanneer de in-process pijplijn niet de lay-outgetrouwheid of procesisolatie kan bieden die het document nodig heeft. Met een brug draag je die stap bewust over; het is niet het standaardpad.

De twee HTTP-bruggen (nextpdf/gotenberg, nextpdf/cloudflare) hebben een door de host geleverde PSR-18-HTTP-client nodig. Hun recipes behandelen een transportfout en een HTTP-status die geen succes aangeeft als afzonderlijke uitkomsten.

nextpdf/gotenberg is de integratie waarvan de geverifieerde composer.json-beschrijving Office-naar-PDF-conversie noemt. De andere renderer-bruggen beschrijven het renderen van HTML, niet Office-invoer. Als de bron DOCX/XLSX/ODT is, gebruik je deze integratie.

Volgens het opgegeven doel is nextpdf/compat-legacy een compatibiliteitslaag voor codebases die voor een verouderde PDF-library zijn geschreven. Daarmee kunnen bestaande aanroeplocaties NextPDF bereiken voordat je ze herschrijft. Beschouw het als een migratiehulpmiddel met een geplande verwijdering, niet als een permanente runtime-afhankelijkheid. Nieuwe code hoort nextpdf/core (of de relevante framework-integratie) rechtstreeks aan te roepen.

Elk ecosysteempakket declareert PHP >=8.4 <9.0. nextpdf/backport-builder bestaat juist voor deze beperking: het opgegeven doel is een Rector-downgradepijplijn die een artefact voor PHP 8.1+ (en een 7.4-target) bouwt. Het is een buildtool, geen runtime-afhankelijkheid voor je applicatie. Voer de builder uit om de gebackporteerde engine te produceren en deploy vervolgens die engine.

nextpdf/server (NextPDF Connect) stelt de engine beschikbaar via een REST API, een gRPC-service en het Model Context Protocol. Kies dit wanneer de aanroeper op afstand is, in een andere taal werkt of een AI-systeem is dat een tool-endpoint gebruikt in plaats van een PHP-library. Een PHP-applicatie in hetzelfde proces hoort nextpdf/core of een framework-integratie te gebruiken in plaats van een netwerkhop toe te voegen.

Een framework-integratie en een renderer-brug werken op verschillende lagen, dus je kunt beide installeren. De framework-integratie verzorgt de container-bedrading en de HTTP-response; de renderer-brug verzorgt de rendering-backend. Wanneer je een gecombineerde set afhankelijkheden oplost, controleer je welke nextpdf/core-versies elk pakket accepteert. De referentie voor de core-beperking in de index van het integratiecookbook is de bron van waarheid. Recipes per combinatie staan in de relevante repositories en zijn vanuit die index gelinkt.

  • Integratiecookbook — referentie voor pakketten en de core-beperking, plus de linkindex met recipes.
  • Receptconventies — het contract waaraan elk uitvoerbaar recipe voldoet.