Laravel PDF Download and Render Using Dompdf
Dompdf is a popular library for generating and creating pdf document based on blade file. In laravel it can be easily done using barryvdh/laravel-dompdf package. Here in this blog we will show to generate pdf file. Let's do it
Install barryvdh/laravel-dompdf Composer Package
composer require barryvdh/laravel-dompdf
Define Necessary Routes
use Illuminate\Support\Facades\Route; Route::get('pdf', [\App\Http\Controllers\DemoPDFController::class, 'downloadPdf']);
Create a Controller for Route Action
php artisan make:controller DemoPDFController
DemoPDFController
namespace App\Http\Controllers; use Barryvdh\DomPDF\Facade\Pdf as PDF; class DemoPDFController extends Controller { public function downloadPdf() { $data = ['title' => 'Test PDF Data']; //pass variables to view according to need $pdf = PDF::loadView('data', $data); //$pdf = PDF::loadView('data', $data)->setpaper('A4', 'portrait'); //if you want to use paper customization return $pdf->download('demopdf.pdf'); } }
Create Blade View for Placing Html
<!DOCTYPE html> <html> <head> <title>{{ $title }}</title> </head> <body> <h1>{{ $title }}</h1> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Blanditiis, cum cupiditate, dolorem doloribus fugit ipsum non optio pariatur perspiciatis quaerat, qui reiciendis totam voluptatem? Eligendi enim eum ex excepturi, explicabo facere illum ipsam ipsum labore minima odio perspiciatis reiciendis repudiandae sint temporibus veniam, vitae! Consectetur corporis cumque dolorem eligendi eos, esse excepturi, exercitationem illum ipsam laboriosam minima non numquam obcaecati odio quidem quisquam quod ratione recusandae reiciendis repudiandae sed tempore tenetur totam, velit veniam? Excepturi nisi, nostrum. Consectetur consequatur, ducimus enim harum modi odio perspiciatis repudiandae soluta suscipit? Beatae deserunt dolore illum magni obcaecati omnis pariatur recusandae reiciendis sed voluptates.</p> <ul> <li>Test 1</li> <li>Test 2</li> </ul> </body> </html>
Access Routes to Browser and See Output
Go to URL http://127.0.0.1:8000/pdf in browser and see the output
This is demo pdf file created by barryvdh/laravel-dompdf package. You can modify your blade file and output will according to contents of that blade file contents. Try to skip exception in blade file. Otherwise pdf generation may failed.