Laravel 11 Generate PDF File using DomPDF Example
In this tutorial, I will show you how to generate pdf file in laravel 11 using dompdf.
We will use the DomPDF Composer package to generate a PDF file in Laravel 11. We will create 10 dummy users and some dummy text to add to the PDF file. So, let's follow the steps below to create the PDF file:
Step for Laravel 11 Create PDF File using DomPDF Example
- Step 1: Install Laravel 11
- Step 2: Install DomPDF Package
- Step 3: Create Controller
- Step 4: Add Route
- Step 5: Create View File
- Run Laravel App
Step 1: Install Laravel 11
This step is not required; however, if you have not created the Laravel app, then you may go ahead and execute the below command:
composer create-project laravel/laravel example-app
Step 2: Install DomPDF Package
Next, we will install the DomPDF package using the following Composer command. Let's run the command below:
composer require barryvdh/laravel-dompdf
Step 3: Create Controller
In this step, we will create a PDFController with a method called generatePDF() where we will write the code to generate a PDF. So, let's create the controller using the command below.
php artisan make:controller PDFController
In the `PDFController`, we also get users table data and display it into a PDF file. So, you can add some dummy data to the users table by using the following Tinker command:
php artisan tinker
User::factory()->count(10)->create()
Now, update the code in the controller file.
app/Http/Controllers/PDFController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use PDF;
class PDFController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function generatePDF()
{
$users = User::get();
$data = [
'title' => 'Welcome to ItSolutionStuff.com',
'date' => date('m/d/Y'),
'users' => $users
];
$pdf = PDF::loadView('myPDF', $data);
return $pdf->download('itsolutionstuff.pdf');
}
}
Step 4: Add Route
Furthermore, open `routes/web.php` file and add a GET route.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PDFController;
Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Step 5: Create View File
In the last step, let's create `myPDF.blade.php` (`resources/views/myPDF.blade.php`) for the layout of the PDF file and put the following code:
resources/views/myPDF.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel 11 Generate PDF Example - ItSolutionStuff.com</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" >
</head>
<body>
<h1>{{ $title }}</h1>
<p>{{ $date }}</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua.</p>
<table class="table table-bordered">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
@foreach($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
</tr>
@endforeach
</table>
</body>
</html>
Run Laravel App:
All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:
php artisan serve
Now, Go to your web browser, type the given URL and view the app output:
http://localhost:8000/generate-pdf
you will download the file as like below:
Now we are ready to run this example and check it...
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel 11 Form Validation Example Tutorial
- Laravel 11 File Upload Example Tutorial
- Laravel 11 Multiple Image Upload Tutorial Example
- Laravel 11 Image Upload Example Tutorial
- Laravel 11 CRUD Application Example Tutorial
- Laravel 11 once() Helper Function Example
- How to Customize Default Middleware in Laravel 11?
- Laravel 11 New a Health Check Route Example
- How to Create Custom Middleware in Laravel 11?
- How to Create and Use Traits in Laravel 11?
- How to Create and Use Enum in Laravel 11?
- How to Publish Config Files in Laravel 11?
- How to Publish the lang Folder in Laravel 11?