"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Générer des documents PDF dans Laravel

Générer des documents PDF dans Laravel

Publié le 2024-08-16
Parcourir:919

Generating PDF documents in Laravel

Laravel et DomPDF : guide étape par étape pour générer des documents PDF avec des images et CSS

La création de documents PDF est une exigence courante dans les applications Web, en particulier pour générer des factures, des reçus, des certificats, des tickets et divers rapports. Dans ce didacticiel complet, nous aborderons l'utilisation de Laravel et DomPDF pour générer des documents PDF avec des images et CSS. Nous aborderons les options de configuration, les considérations de conception, la taille de sortie, les performances et les requêtes de base de données. De plus, nous discuterons de trucs et astuces pour gérer les sauts de page, charger des images en base64, et plus encore.

Conditions préalables

Avant de commencer, assurez-vous que les éléments suivants sont installés :

  • PHP >=8.2
  • Compositeur 2
  • Laravel 10

Introduction

DomPDF est une bibliothèque PHP populaire qui vous permet de générer des documents PDF à partir de contenu HTML. Il prend en charge le style CSS, les images et diverses options de configuration. En intégrant DomPDF à Laravel, vous pouvez facilement créer des documents PDF sophistiqués à l'aide des modèles Blade et des puissantes fonctionnalités de Laravel.

D'autres bibliothèques PDF populaires incluent TCPDF, FPDF et Snappy.

Cependant, DomPDF est largement utilisé en raison de sa facilité d'intégration et de son ensemble de fonctionnalités robustes.

Dans ce didacticiel, nous passerons en revue le processus de configuration d'un projet Laravel, la configuration de DomPDF, la création d'un contrôleur pour gérer la génération de PDF, la conception d'un modèle Blade pour le contenu PDF, l'ajout d'itinéraires et l'optimisation des performances. Nous discuterons également des options de configuration avancées et fournirons des conseils et astuces pour générer des documents PDF de haute qualité.

Hypothèses

Ce tutoriel suppose que vous avez une compréhension de base de Laravel et PHP. Si vous êtes nouveau sur Laravel, pensez à consulter la documentation officielle de Laravel pour vous familiariser avec le framework. Sinon, vous pouvez suivre le Laravel Bootcamp pour démarrer avec Laravel.

Étape 1 : Configuration du projet Laravel

Tout d'abord, créez un nouveau projet Laravel si vous n'en avez pas déjà un, ou utilisez un projet existant. Bien sûr, vous pouvez ignorer cette étape si vous avez déjà un projet Laravel.

composer create-project --prefer-dist laravel/laravel pdf-tutorial
cd pdf-tutorial

Ensuite, installez DomPDF :

composer require barryvdh/laravel-dompdf

Publiez le fichier de configuration :

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

Étape 2 : Configuration de DomPDF

Ouvrez le fichier config/dompdf.php. Le fichier de configuration contient diverses options pour personnaliser la sortie PDF. Ici, vous pouvez définir diverses options, notamment le format de papier par défaut, l'orientation, la police, etc.

  • Format du papier : Vous pouvez définir le format de papier par défaut.
  'default_paper_size' => 'a4',
  • Orientation : Définissez l'orientation par défaut (portrait ou paysage).
  'orientation' => 'portrait',
  • Police : Vous pouvez spécifier la police par défaut et ajouter des polices personnalisées.
  'default_font' => 'serif',

Étape 3 : Création d'un contrôleur

Créez un contrôleur pour gérer la génération de PDF :

php artisan make:controller PDFController

Dans app/Http/Controllers/PDFController.php, ajoutez le code suivant :

 'Laravel PDF Example',
            'date' => date('m/d/Y'),
        ];

        $pdf = PDF::loadView('myPDF', $data);

        return $pdf->download('document.pdf');
    }
}

Étape 4 : Création d'un modèle de lame

Créez un modèle Blade pour le contenu PDF :

touch resources/views/myPDF.blade.php

Ajoutez le contenu suivant à myPDF.blade.php :



    Laravel PDF Example
    


    

{{ $title }}

Date: {{ $date }}

This is an example of a PDF document generated using Laravel and DomPDF.

Étape 5 : Ajouter des itinéraires

Ajoutez des routes pour gérer la génération de PDF dans routes/web.php :

use App\Http\Controllers\PDFController;

Route::get('generate-pdf', [PDFController::class, 'generatePDF']);

Étape 6 : Ajout d'images

Vous pouvez ajouter des images au PDF en les intégrant sous forme de chaînes codées en base64 ou en utilisant des URL.

Les images peuvent être intégrées directement dans le modèle Blade à l'aide de l'encodage base64. Par exemple, pour intégrer une image du public/images, voici comment procéder :

Logo

Ou directement depuis une URL :

Logo

Étape 7 : Optimisation des performances

Requêtes de base de données

Lorsque vous traitez des ensembles de données volumineux (par exemple, 1 000 enregistrements), utilisez la pagination ou la segmentation pour gérer l'utilisation de la mémoire :

$data = DB::table('users')->paginate(50);

$pdf = PDF::loadView('myPDF', ['data' => $data]);

Taille de sortie

Pour réduire la taille de sortie, minimisez l’utilisation d’images lourdes et optez pour des graphiques vectoriels lorsque cela est possible. Utilisez également du CSS efficace.

Sauts de page

Assurez-vous que le contenu est bien structuré pour les sauts de page. Utilisez CSS pour gérer les sauts de page :

.page-break {
    page-break-after: always;
}

Et dans votre modèle Blade :

Étape 8 : Configuration avancée

Pour des configurations plus avancées, reportez-vous à la documentation DomPDF. Vous pouvez presque tout personnaliser, des marges à la façon dont les polices sont chargées.

Utiliser des polices personnalisées

Pour utiliser des polices personnalisées, ajoutez-les d'abord à votre projet et configurez DomPDF pour les utiliser :

'custom_font_dir' => base_path('resources/fonts/'),
'custom_font_data' => [
    'custom-font' => [
        'R' => 'CustomFont-Regular.ttf',
        'B' => 'CustomFont-Bold.ttf',
    ]
],

Dans votre modèle Blade :


Conclusion

En suivant ce guide étape par étape, vous pouvez générer des documents PDF sophistiqués à l'aide de Laravel et DomPDF, avec des images et un style CSS. Ce didacticiel a couvert les options de configuration essentielles, les considérations de conception et l'optimisation des performances. Vous pouvez étendre cette base pour créer un système de génération de documents robuste pour votre application Laravel.

Séries potentielles et référentiel

Ce tutoriel fait partie d'une série sur la génération de PDF avec Laravel. Un référentiel complet avec divers modèles de documents (factures, reçus, certificats, tickets, etc.) peut être trouvé ici. N'hésitez pas à contribuer et à élargir la collection.

Bon codage !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/alphaolomi/generating-pdf-documents-in-laravel-n07?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3