How To Generate PDF From HTML View In Laravel

In this example I will teach you how to generate PDF file from HTML view in laravel. We will learn how to generate PDF from HTML using the DomPDF library. and also we create generate PDF using database records.

For generating PDF file I will use Laravel-dompdf package, it is create pdf file and also provide to download the file functionalities. I will give you example in very simple way to generate pdf file and download in your system. 

So, Let's start and follow below steps to get output.

 Step 1 : Install Laravel

 

 

Type the following command in terminal for create new project in your system.

composer create-project --prefer-dist laravel/laravel PDF_example

 

Step 2 : Install barryvdh/laravel-dompdf Package

After installation of project you need to install barryvdh/laravel-dompdf  Package

composer require barryvdh/laravel-dompdf

 

Step 3 : Add Service Provider And Aliase

After package installation we need to add service provider and aliase in  config/app.php.

'providers' => [
	
	Barryvdh\DomPDF\ServiceProvider::class,
],

'aliases' => [
	
	'PDF' => Barryvdh\DomPDF\Facade::class,
],

 

Step 4 : Create Controller

Now create controller on this path app\Http\Controllers\UserController.php and add below command.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use PDF;

class UserController extends Controller
{
    
    public function index(Request $request)
    {
        $user = User::latest()->paginate(5);
  
        if($request->has('download'))
        {
            $pdf = PDF::loadView('users.index',compact('user'));
            return $pdf->download('pdfview.pdf');
        }

        return view('users.index',compact('user'));
    }
}

 

 

Step 5 : Add Route

After that add below code in routes/web.php 

Route::resource('users','UserController');

 

Step 6 : Create Blade File 

Now, create index.blade,php file for download and generate pdf file in this path resources\views\users\index.blade.php abd add below html code.

<!DOCTYPE html>
<html>
<head>
  <title>How To Generate PDF From HTML View In Laravel - techsolutionstuff.com</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>

  <div class="container">
    <div class="row">
      <div class="col-lg-12" style="margin-top: 15px ">
        <div class="pull-left">
          <h2>How To Generate PDF From HTML View In Laravel - techsolutionstuff.com</h2>
        </div>
        <div class="pull-right">
          <a class="btn btn-primary" href="{{route('users.index',['download'=>'pdf'])}}">Download PDF</a>
        </div>
      </div>
    </div><br>

    <table class="table table-bordered">
      <tr>
        <th>Name</th>
        <th>Email</th>
      </tr>

      @foreach ($user as $user)
      <tr>
        <td>{{ $user->name }}</td>
        <td>{{ $user->email }}</td>
      </tr>
      @endforeach
    </table>
  </div>
</body>
</html>

 After adding all code in your application you can download pdf file of your html view.

How To Generate PDF From HTML View In Laravel

FEATURE POSTS