This is an example of a PDF document generated using Laravel and DomPDF.
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.
Avant de commencer, assurez-vous que les éléments suivants sont installés :
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é.
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.
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"
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.
'default_paper_size' => 'a4',
'orientation' => 'portrait',
'default_font' => 'serif',
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'); } }
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.
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']);
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 :
Ou directement depuis une URL :
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]);
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.
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 :
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.
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 :
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.
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 !
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