Skip to content

Pacchetto Artisan

TCPDF-Next Artisan
Artisan · LGPL-3.0

Il pacchetto Artisan (yeeefang/tcpdf-next-artisan) fornisce conversione HTML-to-PDF pixel-perfect alimentata da Chrome DevTools Protocol (CDP). Renderizza HTML con supporto CSS3 completo -- inclusi Flexbox, Grid, web font, media query e animazioni congelate al momento del rendering.

Quando Usare Artisan

ScenarioRaccomandato
Generare PDF da template HTML/CSSArtisan
Costruzione PDF programmatica (celle, disegno)Core
Email HTML ad archivio PDFArtisan
Fattura da dati strutturatiCore o Artisan
Layout CSS complessi (Grid, Flexbox)Artisan
PDF firmati/criptatiCore

Come Funziona

Artisan avvia un'istanza Chrome headless tramite Chrome DevTools Protocol, carica il tuo contenuto HTML in una pagina browser e usa la funzionalità print-to-PDF integrata di Chrome. Questo significa che ogni funzionalità CSS supportata da Chrome è disponibile per i tuoi PDF -- non più lotta con parser CSS limitati.

HTML/CSS --> ChromeBridge --> Chrome CDP --> Binario PDF --> salva / stream

Installazione

bash
composer require yeeefang/tcpdf-next-artisan

Requisiti:

  • PHP 8.2+
  • chrome-php/chrome ^1.15 (installato automaticamente)
  • Browser Chrome o Chromium installato sull'host
bash
# Ubuntu/Debian
apt-get install -y chromium-browser

# macOS
brew install --cask chromium

# Windows (Chocolatey)
choco install googlechrome

# Imposta percorso personalizzato tramite variabile ambiente
export CHROME_PATH=/usr/bin/google-chrome

Avvio Rapido

php
use Yeeefang\TcpdfNext\Artisan\HtmlRenderer;

$renderer = HtmlRenderer::create();

$renderer
    ->loadHtml('<h1>Ciao, Mondo!</h1><p>Renderizzato con Chrome CDP.</p>')
    ->save('/output/hello.pdf');

Da un URL

php
HtmlRenderer::create()
    ->loadUrl('https://example.com/report')
    ->save('/output/report.pdf');

Da un File

php
HtmlRenderer::create()
    ->loadFile('/templates/invoice.html')
    ->save('/output/invoice.pdf');

Contenuti Pacchetto

ClasseScopo
HtmlRendererEntry point principale -- carica HTML, configura, renderizza
ChromeBridgeComunicazione Chrome DevTools Protocol
RenderOptionsConfigurazione rendering (margini, scala, header)
PageSetupDimensione pagina e orientamento per rendering
PdfMergerUnisce pagine renderizzate multiple in un singolo PDF
StyleInjectorInietta fogli stile CSS prima del rendering
ScreenshotCaptureCattura screenshot pagina (PNG/JPEG)

Gerarchia Eccezioni

EccezioneQuando
RenderExceptionFallimento rendering generico
ChromeNotFoundExceptionBinario Chrome non trovato al percorso atteso
TimeoutExceptionCaricamento pagina o rendering ha superato timeout configurato

Tutte le eccezioni risiedono sotto il namespace Yeeefang\TcpdfNext\Artisan\Exceptions ed estendono una classe base comune ArtisanException.

Confronto con Core HTML Parser

Il pacchetto Core include un modulo HtmlParser per conversione HTML-to-PDF base. Usalo quando hai bisogno di una soluzione senza dipendenze. Usa Artisan quando hai bisogno di fedeltà rendering browser completa.

FunzionalitàCore HtmlParserArtisan
Dipendenza esternaNessunaChrome/Chromium
CSS Flexbox / GridNo
Web font (@font-face)No
Media queryNo
Esecuzione JavaScriptNo
Regole CSS @pageNo
Performance (doc semplici)Più velocePiù lento
Performance (CSS complesso)N/AAffidabile

Prossimi Passi

Rilasciato sotto licenza LGPL-3.0-or-later.