Comment générer un fichier PDF dans une application Laravel à l’aide de DomPDF.
Nous utiliserons le package Composer DomPDF pour générer un fichier PDF dans Laravel 11. Nous créerons 10 utilisateurs fictifs ainsi que du texte de démonstration à inclure dans le fichier PDF.
Suivez les étapes ci-dessous pour créer un fichier PDF :
Table des matières :
Étapes pour créer un fichier PDF avec Laravel 11 en utilisant DomPDF
Installer Laravel 11
Installer le package DomPDF
Créer un contrôleur
Ajouter une route
Créer un fichier de vue
Étape 1 : Installer Laravel 11
composer create-project laravel/laravel example-app
Étape 2 : Installer le package DomPDF
Installez le package DomPDF avec la commande Composer suivante :
composer require barryvdh/laravel-dompdf
Étape 3 : Créer un contrôleur
Créez un contrôleur nommé PDFController avec une méthode generatePDF() où le code pour générer un fichier PDF sera écrit. Exécutez la commande suivante pour créer le contrôleur :
php artisan make:controller PDFController
Ajoutez des données fictives à la table users en utilisant Tinker :
php artisan tinker
User::factory()->count(10)->create()
Ajoutez ensuite la logique pour récupérer les données de la table users et générer le fichier PDF.
// 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');
}
}
Étape 4 : Ajouter une route
Ajoutez une route GET dans le fichier routes/web.php pour accéder à la génération de fichiers PDF :
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PDFController;
Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Étape 5 : Créer un fichier de vue
Créez un fichier nommé myPDF.blade.php dans le dossier resources/views. Ce fichier contiendra la mise en page du contenu PDF avec une table affichant les utilisateurs et leurs informations.
// 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>
Une fois toutes les étapes nécessaires terminées, lancez l’application Laravel avec la commande suivante :
php artisan serve
Ensuite, ouvrez votre navigateur web et entrez l’URL suivante pour générer et télécharger le fichier PDF :
http://localhost:8000/generate-pdf
Vous pourrez télécharger un fichier PDF contenant les informations des utilisateurs et le texte de démonstration.