Ir al contenido

Integración de NextPDF con Artisan

nextpdf/artisan es una biblioteca, no un complemento para frameworks. Para integrarla, se instala, se asocia un ChromeRendererConfig a un documento de NextPDF y se llama a writeHtmlChrome(). Esta página ubica el resto de la documentación de Artisan.

Ventana de terminal
composer require nextpdf/artisan

La matriz completa de requisitos y la dependencia externa de Chrome están documentadas en /integrations/artisan/install/.

Artisan no incluye ningún proveedor de servicios, bundle ni manifiesto de descubrimiento automático para frameworks. Es una biblioteca PSR-4 simple (NextPDF\Artisan\, NextPDF\Parser\) que se consume directamente. No hay nada que «descubrir». El punto de entrada es el método writeHtmlChrome(), expuesto por nextpdf/core en Document una vez que las clases del puente pueden autocargarse. El modelo de descubrimiento y arranque está documentado en /integrations/artisan/boot-and-discovery/.

No hay ninguna integración de contenedor para publicar. En entornos sin contenedor de DI, EInvoiceServiceFactory proporciona métodos de fábrica estáticos (makeEmbedder, makeValidator, makeDefaultProfile, makeSchematronRunner). Estos métodos devuelven implementaciones de contratos Premium de factura electrónica, o null cuando el nivel Premium no está instalado. Esto refleja el comportamiento de devolución de null de los paquetes envoltorio para frameworks, de modo que el código sin contenedor obtiene una superficie coherente. Para más detalles y la motivación, véase /integrations/artisan/boot-and-discovery/.

Punto de entradaDóndeDocumentado en
Document::writeHtmlChrome() (método del núcleo)nextpdf/core/integrations/artisan/quickstart/
Document::setChromeRendererConfig() (método del núcleo)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 firma de writeHtmlChrome() es (string $html, ?float $width = null, ?float $height = null): static, verificada frente a 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";

Esto demuestra que la autocarga y los enlaces de contrato de nextpdf/core se resuelven sin iniciar Chrome (comportamiento confirmado por tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected). La prueba de humo de renderizado de extremo a extremo que ejercita Chrome está documentada en /integrations/artisan/chrome-renderer-setup/.

  • Renderizar el primer documento: /integrations/artisan/quickstart/
  • Cada opción de configuración: /integrations/artisan/configuration/
  • Aprovisionar Chrome / contenedores: /integrations/artisan/chrome-renderer-setup/
  • Modelo de transporte y aislamiento: /integrations/artisan/security-and-operations/
  • Cableado de producción y workers por lotes: /integrations/artisan/production-usage/
  • Diagnosticar un fallo: /integrations/artisan/troubleshooting/
  • Arranque del paquete: /integrations/artisan/boot-and-discovery/

El puente es código abierto y totalmente funcional. Los niveles Premium añaden la incrustación de facturas electrónicas (Pro) y la validación (Enterprise) al PDF renderizado. Cuando no están disponibles, EInvoiceServiceFactory devuelve null, de modo que se puede escribir el código de integración una sola vez y ejecutarlo con o sin Premium.

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