Aller au contenu
getnextpdf.com

Cookbook des intégrations

Le cœur NextPDF génère des documents PDF 2.0 depuis PHP. Les neuf packages d’intégration de l’écosystème relient ce moteur à un framework, un backend de rendu, une base de code héritée, un pipeline de build ou un service réseau. Cette page explique à quoi sert chaque intégration, répertorie le nom de package et la contrainte de version du cœur pour chacune (lus directement dans le composer.json de chaque package), et renvoie vers la recipe quickstart de chaque intégration.

Cette page est un index ; elle ne fait donc aucune affirmation de comportement sur une intégration. Chaque intégration possède ses propres recipes dans son propre dépôt, et l’agrégateur les publie sur ce site. Pour une recommandation orientée cas d’usage, lis Choisir une intégration. Pour le contrat suivi par chaque recipe exécutable, lis Conventions des recettes.

Les neuf packages se répartissent en cinq formes. La forme t’indique le type de problème que l’intégration résout.

  • Les intégrations de framework raccordent NextPDF au conteneur de services et au cycle de vie des requêtes d’un framework applicatif : nextpdf/laravel, nextpdf/symfony, nextpdf/codeigniter. Tu en installes une, tu résous un service, puis tu renvoies une réponse PDF.
  • Les ponts de rendu délèguent l’étape HTML-vers-PDF ou Office-vers-PDF à un backend de rendu externe au lieu du pipeline in-process : nextpdf/artisan (headless Chrome via le Chrome DevTools Protocol), nextpdf/gotenberg (un microservice Gotenberg), nextpdf/cloudflare (Cloudflare Browser Rendering en périphérie).
  • Un shim de compatibilité permet à une base de code écrite contre une bibliothèque PDF héritée d’appeler NextPDF sans réécriture : nextpdf/compat-legacy.
  • Un outil de build produit un backport PHP 8.1 / 7.4 de NextPDF pour les runtimes qui ne peuvent pas exécuter PHP 8.4 : nextpdf/backport-builder.
  • Un service réseau expose NextPDF via REST, gRPC et le Model Context Protocol pour les systèmes d’IA et les appelants distants : nextpdf/server (distribué sous le nom NextPDF Connect).

Les ponts de rendu qui communiquent en HTTP (nextpdf/gotenberg, nextpdf/cloudflare, ainsi que le chemin client HTTP dans nextpdf/laravel) dépendent d’un client HTTP PSR-18 fourni par l’application hôte. Un client PSR-18 lève une exception client typée uniquement lorsqu’il ne peut pas du tout envoyer la requête, comme l’énonce la clause directrice PSR-18 §4. Une réponse HTTP 4xx ou 5xx est une valeur de retour normale plutôt qu’une exception, ce que la même clause PSR-18 §4 énonce également. Les recipes qui appellent un renderer distant traitent l’erreur de transport et le statut d’échec comme deux cas distincts.

Référence des packages et des contraintes de cœur

Section intitulée « Référence des packages et des contraintes de cœur »

Chaque valeur ci-dessous est lue dans le composer.json du package nommé, qui fait autorité. La contrainte de cœur correspond à l’exigence nextpdf/core déclarée par le package. nextpdf/backport-builder ne déclare aucune exigence nextpdf/core parce qu’il transforme le code source du moteur au lieu de dépendre du moteur à l’exécution.

IntégrationPackageFormeContrainte de cœurRecipe
Laravelnextpdf/laravelFramework^3.0 || ^5.2Quickstart Laravel
Symfonynextpdf/symfonyFramework^3.0 || ^5.2Quickstart Symfony
CodeIgniter 4nextpdf/codeigniterFramework^3.0 || ^5.2Quickstart CodeIgniter
Artisan (Chrome)nextpdf/artisanPont de rendu^3.0 || ^5.2Quickstart Artisan
Gotenbergnextpdf/gotenbergPont de rendu^3.0Quickstart Gotenberg
Cloudflarenextpdf/cloudflarePont de rendu^3.0Quickstart Cloudflare
Compat (legacy)nextpdf/compat-legacyShim de compatibilité^3.0Quickstart TCPDF-compat
Backport buildernextpdf/backport-builderOutil de buildsans objetQuickstart backport
Connect (server)nextpdf/serverService réseau^3.0Quickstart Connect

NextPDF distribue nextpdf/server sous le nom de produit NextPDF Connect ; ses recipes vivent sous le slug de premier niveau connect. nextpdf/compat-legacy provient de la famille compat ; ses recipes vivent sous le slug tcpdf-compat, nommé d’après la surface qu’il émule.

Chaque package requiert PHP >=8.4 <9.0 pour sa propre exécution. nextpdf/backport-builder existe précisément pour produire des artefacts qui s’exécutent sur PHP 8.1 (et une cible 7.4) ; c’est le moteur backporté résultant, et non le builder, qui s’exécute sur le runtime plus ancien.

  • nextpdf/laravel — un service provider Laravel 12, une façade et des helpers de réponse PDF. Utilise-la quand l’application est une application Laravel et que tu veux que NextPDF soit résolu depuis le conteneur puis renvoyé comme réponse HTTP sans câblage manuel. Recipe : Quickstart Laravel.
  • nextpdf/symfony — un bundle Symfony 7 avec des services d’injection de dépendances et des helpers de réponse PDF. Utilise-le quand l’application est une application Symfony ; le bundle enregistre le moteur comme service et s’intègre aux réponses symfony/http-foundation. Recipe : Quickstart Symfony.
  • nextpdf/codeigniter — un service CodeIgniter 4, un wrapper de bibliothèque et des helpers de réponse PDF. Utilise-le quand l’application est une application CodeIgniter 4 et que tu veux rendre NextPDF accessible via le service locator du framework. Recipe : Quickstart CodeIgniter.
  • nextpdf/artisan — un renderer headless Chrome via le Chrome DevTools Protocol. Utilise-le quand un document a besoin du moteur CSS d’un navigateur pour une fidélité de mise en page que le pipeline HTML in-process ne vise pas, et que tu peux exécuter un processus Chrome près de l’application. Recipe : Quickstart Artisan.
  • nextpdf/gotenberg — conversion Office-vers-PDF et HTML-vers-PDF via un microservice Gotenberg. Utilise-le quand l’entrée est un document Office ou quand le rendu doit s’exécuter hors processus, dans un service distinct. Il communique en HTTP via un client PSR-18 fourni par l’hôte. Recipe : Quickstart Gotenberg.
  • nextpdf/cloudflare — rendu serverless via l’API Cloudflare Browser Rendering. Utilise-le quand le rendu doit s’exécuter en périphérie, sans processus de navigateur longue durée à opérer. Il communique en HTTP via un client PSR-18 fourni par l’hôte. Recipe : Quickstart Cloudflare.
  • nextpdf/compat-legacy — une couche de compatibilité pour les bases de code écrites contre une bibliothèque PDF héritée. Utilise-la pour appeler NextPDF depuis du code existant sans réécrire d’abord les sites d’appel ; c’est une aide à la migration, pas une dépendance permanente. Recipe : Quickstart TCPDF-compat.
  • nextpdf/backport-builder — un pipeline de downgrade basé sur Rector qui produit un build PHP 8.1 (et une cible 7.4) de NextPDF. Utilise-le quand un runtime ne peut pas être déplacé vers PHP 8.4 et que tu as quand même besoin du moteur dans cet environnement. C’est une infrastructure de build ; elle n’est pas ajoutée aux dépendances d’exécution d’une application. Recipe : Quickstart backport.
  • nextpdf/server (NextPDF Connect) — expose NextPDF via une API REST, un service gRPC et le Model Context Protocol. Utilise-le quand les appelants sont distants, écrits dans un autre langage, ou sont des systèmes d’IA qui ont besoin d’un endpoint d’outil plutôt que d’une bibliothèque PHP. Recipe : Quickstart Connect.

Les recipes vivent sous /integrations/<integration>/<recipe>/, où <integration> est le nom court repris du tableau de référence ci-dessus (les recipes Connect vivent plutôt sous le slug de premier niveau connect). La première recipe que publie chaque intégration s’appelle quickstart ; les recipes suivantes utilisent des segments <recipe> supplémentaires sous la même racine. Cet index ne fait aucune affirmation de comportement sur une page cible. Il consigne uniquement les faits de package vérifiés depuis composer.json et le slug qu’occupent les recipes de chaque dépôt.