Перейти к содержимому

Интеграция NextPDF Artisan

nextpdf/artisan — библиотека, а не плагин фреймворка. Для интеграции установите пакет, подключите ChromeRendererConfig к документу NextPDF и вызовите writeHtmlChrome(). Эта страница поможет найти сопутствующую документацию по Artisan.

Окно терминала
composer require nextpdf/artisan

Полную матрицу требований и сведения о Chrome как внешней зависимости см. в разделе /integrations/artisan/install/.

Artisan не поставляется ни с сервис-провайдером, ни с бандлом, ни с манифестом автообнаружения для фреймворка. Это обычная библиотека по стандарту PHP Standard Recommendation 4 (PSR-4) (NextPDF\Artisan\, NextPDF\Parser\), которую вы используете напрямую. Обнаруживать нечего. Точка входа — метод writeHtmlChrome(): nextpdf/core предоставляет его в Document, как только классы моста становятся доступны для автозагрузки. Модель обнаружения и начальной загрузки описана в разделе /integrations/artisan/boot-and-discovery/.

Публиковать интеграцию для контейнера не нужно. В окружениях без контейнера внедрения зависимостей EInvoiceServiceFactory предоставляет статические фабричные методы (makeEmbedder, makeValidator, makeDefaultProfile, makeSchematronRunner). Эти методы возвращают реализации контрактов электронных счетов Premium либо null, если уровень Premium не установлен. Это соответствует поведению пакетов-обёрток для фреймворков, которые возвращают null, поэтому код без контейнера работает с тем же интерфейсом. Подробности и обоснование см. в разделе /integrations/artisan/boot-and-discovery/.

Точка входаГдеОписано в
Document::writeHtmlChrome() (метод ядра)nextpdf/core/integrations/artisan/quickstart/ — быстрый старт
Document::setChromeRendererConfig() (метод ядра)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/ — загрузка и обнаружение

Сигнатура writeHtmlChrome()(string $html, ?float $width = null, ?float $height = null): static; это подтверждено в 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";

Это подтверждает, что автозагрузка и привязки контрактов nextpdf/core разрешаются без запуска Chrome (поведение проверяется тестом tests/Unit/Artisan/ChromeHtmlRendererTest.php::usesDefaultHtmlSecurityPolicyWhenNoneInjected). Сквозной дымовой тест отрисовки с запуском Chrome см. в разделе /integrations/artisan/chrome-renderer-setup/.

  • Отрисуйте свой первый документ: /integrations/artisan/quickstart/
  • Все параметры конфигурации: /integrations/artisan/configuration/
  • Подготовка Chrome / контейнеров: /integrations/artisan/chrome-renderer-setup/
  • Модель транспорта и изоляции: /integrations/artisan/security-and-operations/
  • Подключение в продакшене и пакетные обработчики: /integrations/artisan/production-usage/
  • Диагностика сбоя: /integrations/artisan/troubleshooting/
  • Как загружается пакет: /integrations/artisan/boot-and-discovery/

Этот мост — полностью работоспособное программное обеспечение с открытым исходным кодом. Уровни Premium добавляют встраивание электронных счетов (Pro) и их проверку (Enterprise) поверх отрисованного файла в формате Portable Document Format (PDF). Если они отсутствуют, EInvoiceServiceFactory возвращает null, поэтому код интеграции можно написать один раз и запускать как с Premium, так и без него.

  • /integrations/artisan/overview/ — обзор
  • /integrations/artisan/install/ — установка
  • /integrations/artisan/boot-and-discovery/ — загрузка и обнаружение
  • /integrations/artisan/quickstart/ — быстрый старт