Spatie continúa asombrando a la comunidad de Laravel, y en esta ocasión presentaron el nuevo paquete definitivo para crear PDF con TailwindCSS y Laravel. Se trata de spatie/laravel-pdf: Create PDF files in Laravel apps (github.com) una herramienta esencial que simplifica la creación de archivos PDF directamente desde los archivos Blade de Laravel. Aprovechando la potencia de Laravel Blade junto con TailwindCSS.
¿Cómo funciona?
Fácil, utilizando Chromium genera un pantallazo o impresión de la vista de Laravel y devuelve un PDF optimizado de nuestra página. Es ideal para la impresión de facturas, invoices e incluso tablas diseñadas con TailwindCSS.
Tutorial para utilizar Spatie – Laravel PDF
Para empezar a crear PDF en Laravel 10, y demás versiones, necesitamos instalar desde composer el paquete, para ello abrimos la terminal y copiamos el siguiente código:
composer require spatie/laravel-pdf
Este paquete necesita instalar dependencias adicionales para convertir Blade a PDF utilizando BrowserShot, así que instalamos también con composer el siguiente paquete:
composer require spatie/browsershot
Listo, ya tenemos instalado todo para empezar a crear PDF en Laravel con las Vistas de TailwindCSS.
El siguiente código crea un pdf de la vista pdfs.invoice, mientras que el segundo código devuelve al navegador un pdf para que el usuario pueda descargarlo:
use Spatie\LaravelPdf\Facades\Pdf;
Pdf::view('pdfs.invoice', ['invoice' => $invoice])
->format('a4')
->save('invoice.pdf')
use Spatie\LaravelPdf\Facades\Pdf;
class DownloadInvoiceController
{
public function __invoke(Invoice $invoice)
{
return Pdf::view('pdfs.invoice', ['invoice' => $invoice])
->format('a4')
->name('your-invoice.pdf');
}
}