Exemple de Fusion de Plusieurs Fichiers PDF

 

Aujourd’hui, je vais vous montrer comment fusionner plusieurs fichiers PDF en utilisant le package setasign/fpdi dans Laravel. Je vais écrire un exemple simple de fusion de fichiers PDF dans les applications Laravel 5, 6, 7, 8, 9, 10 et 11.

Comme nous le savons, presque tous les documents sont écrits en format PDF. Ainsi, si vous devez envoyer un email ou un fax, il peut être nécessaire de fusionner plusieurs fichiers PDF en un seul fichier. Si vous devez créer un fichier PDF unique à partir de plusieurs fichiers PDF, ce tutoriel est fait pour vous. Si vous souhaitez créer un fichier PDF, vous pouvez suivre ce tutoriel : Générer un fichier PDF dans Laravel.

Dans ce tutoriel, nous allons installer les packages Composer setasign/fpdi et setasign/fpdf, puis créer un exemple. Nous allons également créer deux routes, GET et POST. Ensuite, nous allons créer un fichier de contrôleur avec un fichier Blade. Lorsque l’utilisateur sélectionne plusieurs fichiers PDF, le résultat sera un seul fichier fusionné.

Suivez les étapes ci-dessous pour un exemple simple et rapide.
Étapes pour Fusionner Plusieurs Fichiers PDF dans Laravel 11

Étape 1 : Installer Laravel 11
Étape 2 : Installer les Packages
Étape 3 : Créer les Routes
Étape 4 : Créer le Contrôleur
Étape 5 : Créer le Fichier Blade
Lancer l’Application Laravel

Étape 1 : Installer Laravel 11

Tout d’abord, nous devons obtenir une nouvelle application Laravel 11 en exécutant la commande suivante. Ouvrez votre terminal ou invite de commande et exécutez :

composer create-project laravel/laravel example-app

Étape 2 : Installer les Packages

Ensuite, nous allons installer les packages setasign/fpdf et setasign/fpdi via Composer dans notre application Laravel.

composer require setasign/fpdf
composer require setasign/fpdi

Étape 3 : Créer les Routes

À cette étape, nous allons créer les routes pour afficher le formulaire. Ouvrez le fichier routes/web.php et ajoutez les routes suivantes :

routes/web.php

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PDFController;

Route::get(‘merge-pdf’, [PDFController::class, ‘index’]);
Route::post(‘merge-pdf’, [PDFController::class, ‘store’])->name(‘merge.pdf.post’);

Étape 4 : Créer le Contrôleur

À cette étape, nous allons créer un nouveau contrôleur PDFController qui gérera les méthodes GET et POST des routes. Ajoutez le code suivant :

app/Http/Controllers/PDFController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use setasign\Fpdi\Fpdi;

class PDFController extends Controller
{
/**
* Affiche le tableau de bord de l’application.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view(‘mergePDF’);
}

/**
* Traite la fusion des fichiers PDF.
*
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
‘filenames’ => ‘required’,
‘filenames.*’ => ‘mimes:pdf’,
]);

if ($request->hasFile(‘filenames’)) {
$pdf = new Fpdi();

foreach ($request->file(‘filenames’) as $key => $value) {
$pageCount = $pdf->setSourceFile($value->getPathName());

for ($i = 0; $i < $pageCount; $i++) {
$pdf->AddPage();
$tplId = $pdf->importPage($i + 1);
$pdf->useTemplate($tplId);
}
}

return response($pdf->Output())
->header(‘Content-Type’, ‘application/pdf’);
}
}
}

Étape 5 : Créer le Fichier Blade

Enfin, créons le fichier mergePDF.blade.php (dans resources/views/mergePDF.blade.php) pour la mise en page et ajoutez le code suivant :

resources/views/mergePDF.blade.php

<html lang= »en »>
<head>
<title>Exemple de Fusion de Plusieurs Fichiers PDF dans Laravel 11 – ItSolutionStuff.com</title>
<link href= »https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.0.1/css/bootstrap.min.css » rel= »stylesheet »>
</head>
<body>
<div class= »container »>
<div class= »card mt-5″>
<h3 class= »card-header p-3″>Exemple de Fusion de Fichiers PDF dans Laravel 11 – ItSolutionStuff.com</h3>
<div class= »card-body »>

@if (count($errors) > 0)
<div class= »alert alert-danger »>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

<form method= »post » action= »{{ route(‘merge.pdf.post’) }} » enctype= »multipart/form-data »>
{{ csrf_field() }}
<input type= »file » name= »filenames[] » class= »myfrm form-control » multiple= » »>
<button type= »submit » class= »btn btn-success » style= »margin-top:10px »>Soumettre</button>
</form>

</div>
</div>
</div>
</body>
</html>

Lancer l’Application Laravel

Toutes les étapes nécessaires sont complétées. Maintenant, exécutez la commande suivante pour démarrer l’application Laravel :

php artisan serve

Ensuite, ouvrez votre navigateur et accédez à l’URL suivante pour voir le résultat de l’application :

http://localhost:8000/merge-pdf

Sites Ressources e-Plus Pour Laravel 11

1. Packagist Description : Le principal dépôt de packages PHP, avec une catégorie spécifique pour Laravel. Lien : https://packagist.org Ressources :...

Sites Ressources e-Plus Pour Laravel 11

1. Packagist Description : Le principal dépôt de packages PHP, avec une catégorie spécifique pour Laravel. Lien : https://packagist.org Ressources :...