PDF Générer un fichier avec Laravel en utilisant DomPDF

PDF Générer un fichier avec Laravel en utilisant DomPDF

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 :

É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.

par