Pdf Facade
Il Pdf Facade fornisce un proxy statico conveniente al binding PdfDocumentInterface registrato dal TcpdfServiceProvider. Tutti i valori configurazione da config/tcpdf-next.php sono applicati automaticamente.
use Yeeefang\TcpdfNext\Laravel\Facades\Pdf;Creare un Documento
Pdf::create() risolve un'istanza Document fresca dal container con tutti i default config pre-applicati:
$pdf = Pdf::create();
$pdf->addPage()
->setFont('Helvetica', '', 12)
->cell(0, 10, 'Ciao da Laravel!')
->save(storage_path('app/hello.pdf'));Ogni chiamata a create() restituisce un'istanza nuova. I documenti non sono mai condivisi tra chiamate.
API Fluent
Tutti i metodi Document sono disponibili tramite il Facade e restituiscono static per concatenamento:
$pdf = Pdf::create()
->setTitle('Rapporto Trimestrale')
->setAuthor('Team Finanza')
->setMargins(left: 15, top: 20, right: 15)
->addPage()
->setFont('Helvetica', 'B', 18)
->cell(0, 12, 'Rapporto Q1 2026')
->ln()
->setFont('Helvetica', '', 11)
->multiCell(0, 6, $reportBody);Binding Configurazione
Il Facade legge i default da config/tcpdf-next.php. Puoi sovrascrivere qualsiasi impostazione per-documento:
// Usa default config (A4 portrait, Helvetica 11pt)
$default = Pdf::create();
// Sovrascrivi formato pagina solo per questo documento
$receipt = Pdf::create()
->setPageFormat('A5')
->setMargins(left: 10, top: 10, right: 10);Vedi Configurazione per il riferimento completo.
Riferimento Classe Facade
namespace Yeeefang\TcpdfNext\Laravel\Facades;
use Illuminate\Support\Facades\Facade;
/**
* @method static \Yeeefang\TcpdfNext\Core\Document create()
* @method static void fake()
* @method static void assertCreated()
* @method static void assertCreatedCount(int $count)
*
* @see \Yeeefang\TcpdfNext\Core\Document
*/
class Pdf extends Facade
{
protected static function getFacadeAccessor(): string
{
return \Yeeefang\TcpdfNext\Contracts\PdfDocumentInterface::class;
}
}Testing con Pdf::fake()
Sostituisci il binding reale con un fake per asserzioni senza generare byte PDF effettivi:
use Yeeefang\TcpdfNext\Laravel\Facades\Pdf;
public function test_invoice_generates_pdf(): void
{
Pdf::fake();
$response = $this->get('/invoices/42/pdf');
$response->assertOk();
Pdf::assertCreated();
Pdf::assertCreatedCount(1);
}Il fake registra ogni chiamata metodo, così puoi ispezionare la catena fluent:
Pdf::fake();
$this->get('/invoices/42/pdf');
Pdf::assertCreated(function ($pdf) {
return $pdf->getTitle() === 'Fattura #42'
&& $pdf->getPageCount() >= 1;
});Prossimi Passi
- Risposte HTTP — Consegna PDF al browser in modo sicuro
- Queue Jobs — Delega generazione a worker background
- Configurazione — Tutte le chiavi config disponibili