Laravel Pdf
Laravel Pdf stats
- Downloads
- 154
- Stars
- 283
- Open Issues
- 0
- Forks
- 9
Create PDFs in Laravel apps
Spatie Laravel PDF
The Spatie Laravel PDF package enables easy PDF generation in Laravel applications, leveraging Chromium to convert Blade views into PDF files. This approach allows developers to utilize advanced CSS features like Flexbox and Grid in their PDF designs.
Key Features
- Generate PDFs from Blade Views: Render any Blade view as a PDF file, passing necessary data directly into the view.
- Modern CSS Support: Design your PDF layouts using modern CSS, thanks to the underlying use of Chromium.
- Save or Stream PDFs: Easily save generated PDFs to the server or stream them directly to the user for downloads.
- Testing Support: Includes functionality to fake PDF downloads in tests to ensure your application behaves as expected without generating actual files during testing.
Installation and Usage
To install the package, run:
composer require spatie/laravel-pdf
Basic Usage
Generate a PDF by rendering a Blade view:
use Spatie\LaravelPdf\Facades\Pdf; Pdf::view('pdfs.invoice', ['invoice' => $invoice]) ->format('a4') ->save('invoice.pdf');
To send a PDF as a downloadable response:
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'); }}
Testing
Ensure Puppeteer is installed (npm -g i puppeteer) and pdftotext from poppler-utils (brew install poppler-utils), then run:
composer test
Documentation and Support
Full documentation is available on the Spatie documentation site. For more extensive support and contributions, visit the GitHub repository or the Spatie website.
Contributions and Security
Contributions are welcome! Please see the repository's CONTRIBUTING guide for more details. For security issues, refer to the project's security policy.
This package is part of Spatie's suite of open-source tools. Support their work by purchasing a product or sending a postcard.