콘텐츠로 이동

NextPDF Artisan 통합

nextpdf/artisan은 프레임워크 플러그인이 아니라 라이브러리입니다. 통합하려면 먼저 설치한 뒤 ChromeRendererConfig를 NextPDF 문서에 연결하고 writeHtmlChrome()를 호출합니다. 이 페이지는 나머지 Artisan 문서로 안내하는 길잡이 역할을 합니다.

Terminal window
composer require nextpdf/artisan

전체 요구 사항 매트릭스와 외부 Chrome 종속성은 다음에서 확인하세요: /integrations/artisan/install/.

Artisan은 서비스 프로바이더, 번들, 프레임워크 자동 디스커버리 매니페스트를 제공하지 않습니다. 직접 사용하는 일반 PSR-4 라이브러리(NextPDF\Artisan\, NextPDF\Parser\)입니다. 따라서 “디스커버리”할 대상이 없습니다. 진입점은 writeHtmlChrome() 메서드이며, 브리지 클래스가 자동 로드 가능해지면 nextpdf/core가 이를 Document에 노출합니다. 디스커버리 및 부트스트랩 모델은 다음에서 확인하세요: /integrations/artisan/boot-and-discovery/.

공개할 컨테이너 통합은 없습니다. DI 컨테이너가 없는 환경에서는 EInvoiceServiceFactory가 정적 팩토리 메서드(makeEmbedder, makeValidator, makeDefaultProfile, makeSchematronRunner)를 제공합니다. 이러한 메서드는 Premium e-invoice 컨트랙트 구현을 반환하며, Premium 등급이 설치되지 않은 경우 null을 반환합니다. 이는 프레임워크 래퍼 패키지의 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";

이는 Chrome을 실행하지 않고도 자동 로딩과 nextpdf/core 컨트랙트 바인딩을 확인할 수 있음을 보여 줍니다(동작은 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 등급은 렌더링된 PDF에 e-invoice 임베딩(Pro)과 검증(Enterprise)을 추가합니다. 해당 등급이 없는 경우 EInvoiceServiceFactorynull을 반환하는 방식으로 격하되므로, 통합 코드를 한 번만 작성해 Premium 유무와 관계없이 실행할 수 있습니다.

  • 개요 /integrations/artisan/overview/
  • 설치 /integrations/artisan/install/
  • 부팅 및 디스커버리 /integrations/artisan/boot-and-discovery/
  • 퀵스타트 /integrations/artisan/quickstart/