Laravel-pdf
Create PDFs in Laravel apps
This package provides a simple way to create PDFs in Laravel apps. Under the hood it uses Chromium (via Browsershot) to generate PDFs from Blade views. You can use modern CSS features like grid and flexbox, or even a framework like Tailwind, to create beautiful PDFs.
Here's a quick example:
use Spatie\LaravelPdf\Facades\Pdf;
Pdf::view('pdfs.invoice', ['invoice' => $invoice])
->format('a4')
->save('invoice.pdf')
This will render the Blade view pdfs.invoice
with the given data and save it as a PDF file.
You can also return the PDF as a response from your controller:
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');
}
}
You can use also test your PDFs:
use Spatie\LaravelPdf\Facades\Pdf;
it('can render an invoice', function () {
Pdf::fake();
$invoice = Invoice::factory()->create();
$this->get(route('download-invoice', $invoice))
->assertOk();
Pdf::assertRespondedWithPdf(function (PdfBuilder $pdf) {
return $pdf->contains('test');
});
});
##We got badges