Aller au contenu

Intégration Artisan avec NextPDF

nextpdf/artisan est une bibliothèque, pas un plugin de framework. Pour l’intégrer, installe le package, associe une ChromeRendererConfig à un document NextPDF, puis appelle writeHtmlChrome(). Cette page t’oriente dans le reste de la documentation Artisan.

Fenêtre de terminal
composer require nextpdf/artisan

Pour la matrice complète des prérequis et la dépendance externe à Chrome, voir /integrations/artisan/install/.

Artisan ne fournit ni service provider, ni bundle, ni manifeste d’auto-découverte de framework. C’est une simple bibliothèque PSR-4 (NextPDF\Artisan\, NextPDF\Parser\) que tu consommes directement. Il n’y a donc rien à « découvrir ». Le point d’entrée est la méthode writeHtmlChrome(), que nextpdf/core expose sur Document dès que l’autoloader peut charger les classes du pont. Pour le modèle de découverte et de bootstrap, voir /integrations/artisan/boot-and-discovery/.

Aucune intégration de conteneur n’est à publier. Dans les environnements sans conteneur d’injection de dépendances, EInvoiceServiceFactory fournit des méthodes de fabrique statiques (makeEmbedder, makeValidator, makeDefaultProfile, makeSchematronRunner). Ces méthodes renvoient des implémentations des contrats de facturation électronique Premium, ou null quand le niveau Premium n’est pas installé. Ce comportement reprend le retour null des packages wrapper de framework, afin que le code sans conteneur bénéficie d’une surface cohérente. Pour les détails et la justification, voir /integrations/artisan/boot-and-discovery/.

Point d’entréeDocumenté dans
Document::writeHtmlChrome() (méthode du cœur)nextpdf/core/integrations/artisan/quickstart/
Document::setChromeRendererConfig() (méthode du cœur)nextpdf/core/integrations/artisan/quickstart/
ChromeHtmlRenderer::render()nextpdf/artisan/integrations/artisan/production-usage/
ChromeRendererConfig / ::fromArray()nextpdf/artisan/integrations/artisan/configuration/
EInvoiceServiceFactory::make*()nextpdf/artisan/integrations/artisan/boot-and-discovery/

La signature de writeHtmlChrome() est (string $html, ?float $width = null, ?float $height = null): static, vérifiée par rapport à nextpdf/coresrc/Core/Concerns/HasTextOutput.php.

<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeHtmlRenderer;
use NextPDF\Artisan\ChromeRendererConfig;
require __DIR__ . '/vendor/autoload.php';
$renderer = new ChromeHtmlRenderer(new ChromeRendererConfig());
assert($renderer->getHtmlSecurityPolicy()->getName() === 'default');
echo "ARTISAN_WIRED\n";

Cela vérifie que l’autoloading et les liaisons de contrats nextpdf/core se résolvent sans lancer Chrome (comportement validé par tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected). Pour le test de fumée de rendu de bout en bout qui sollicite Chrome, voir /integrations/artisan/chrome-renderer-setup/.

  • Génère ton premier document : /integrations/artisan/quickstart/
  • Consulte toutes les options de configuration : /integrations/artisan/configuration/
  • Provisionne Chrome / les conteneurs : /integrations/artisan/chrome-renderer-setup/
  • Consulte le modèle de transport et d’isolation : /integrations/artisan/security-and-operations/
  • Câblage de production et workers de lot : /integrations/artisan/production-usage/
  • Diagnostique une panne : /integrations/artisan/troubleshooting/
  • Comprends comment le package démarre : /integrations/artisan/boot-and-discovery/

Le pont est pleinement fonctionnel en open source. Les niveaux Premium ajoutent l’embarquement de facturation électronique (Pro) et la validation (Enterprise) par-dessus le PDF rendu. Quand ils sont absents, EInvoiceServiceFactory retourne null, ce qui te permet d’écrire ton code d’intégration une seule fois et de l’exécuter avec ou sans Premium.

  • /integrations/artisan/overview/
  • /integrations/artisan/install/
  • /integrations/artisan/boot-and-discovery/
  • /integrations/artisan/quickstart/