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. 

Tags: