Creating PDF files in Laravel is a common task for many web applications. Whether it’s for invoices, reports, or other types of documents, the ability to generate PDFs can be a valuable feature for your users. In this tutorial, we will show you how to create PDF files in Laravel 9 using the laravel-dompdf package.
The first thing you need to do is add the DomPDF package to your laravel-app. You can do this by running the following command in Composer:
composer require barryvdh/laravel-dompdf
Enter fullscreen mode
Exit fullscreen mode
Once the package is installed, you need to register the service provider in the config/app.php file. You can do this by adding the following line to the providers array:
'providers' => [ // . Barryvdh\DomPDF\ServiceProvider::class, ],
Enter fullscreen mode
Exit fullscreen mode
Next, we’ll add an alias for the package to the aliases array in the same file:'aliases' => [ // . 'PDF' => Barryvdh\DomPDF\Facade::class, ],
Enter fullscreen mode
Exit fullscreen mode
Next, you need to create a route that will handle the PDF generation. In this example, we will create a route that generates a PDF from an HTML view.
Route::get('/pdf', function () $pdf = PDF::loadView('invoice', $data); return $pdf->download('invoice.pdf'); >);
Enter fullscreen mode
Exit fullscreen mode
The above code will take the invoice view and data, and generate a PDF that the user can download. The download method is used to prompt the user to download the file.
Now you need to create an HTML view that will be used as the template for the PDF. You can do this by creating a new file in the resources/views folder called invoice.blade.php . This file can contain any HTML and CSS that you want to be included in the PDF.
You can customize the PDF by editing the view file or you can use css file separately. You can use the following code in order to include css file in pdf.
$pdf = PDF::loadView('invoice')->setPaper('a4', 'portrait')->setWarnings(false); return $pdf->download('invoice.pdf');
Enter fullscreen mode
Exit fullscreen mode
Finally, you can use the download method to prompt the user to download the PDF or use the save method to save it to a specific location on your server.
Route::get('/pdf', function () $pdf = PDF::loadView('invoice', $data); return $pdf->save('/path-to/my_stored_file.pdf')->stream('invoice.pdf'); //return $pdf->download('invoice.pdf'); >);
Enter fullscreen mode
Exit fullscreen mode
In conclusion, creating PDF files in Laravel 9 is a simple task that can be accomplished using the laravel-dompdf package. By following the steps outlined in this tutorial, you can easily generate PDFs for your web application. This can be a great feature for creating invoices, reports, and other types of documents, with the added benefit of being SEO optimized. I hope this tutorial has been helpful in understanding how to use DomPDF to generate PDFs in Laravel 9. Happy coding!