Merge PDF di Laravel dengan Laravel-PDFMerger Package
Laravel PDF Merger - PDF (Portable Document Format) telah menjadi format yang sangat umum untuk berbagi dokumen digital secara luas. Dalam beberapa situasi, Kita mungkin perlu menggabungkan beberapa file PDF menjadi satu file untuk memudahkan distribusi atau penyimpanan. Di dalam ekosistem Laravel, ada banyak cara untuk melakukan ini, dan salah satunya adalah dengan menggunakan package Laravel-PDFMerger yang dikembangkan oleh Webklex. Di artikel ini, kita akan membahas cara menggabungkan beberapa file PDF menggunakan Laravel-PDFMerger package.
Table of Contents
Mengenal Laravel-PDFMerger Package
Laravel-PDFMerger adalah sebuah package yang memungkinkan kita untuk menggabungkan beberapa file PDF menjadi satu file PDF di dalam proyek Laravel kita. Package ini memanfaatkan berbagai fitur Laravel, seperti dependency injection dan facades, untuk mempermudah proses penggabungan PDF.
Persiapan Awal
Sebelum Kita dapat menggunakan Laravel-PDFMerger, kita harus melakukan beberapa langkah seperti berikut ini:
Instalasi Laravel-PDFMerger Package
Buka terminal dan masuk ke direktori proyek Laravel. Kemudian, jalankan perintah berikut untuk menginstal Laravel-PDFMerger package:
composer require webklex/laravel-pdfmerger Setup PDFMerger
Setelah instalasi selesai, kita perlu menambahkan PDFMerger sebagai service provider di dalam proyek kita. Buka config/app.php dan tambahkan baris berikut di dalam baris providers dan aliases:
'providers' => [
...
Webklex\PDFMerger\Providers\PDFMergerServiceProvider::class
],
'aliases' => [
...
'PDFMerger' => Webklex\PDFMerger\Facades\PDFMergerFacade::class
] Menggabungkan PDF
Setelah konfigurasi awal selesai, Kita dapat mulai menggabungkan file PDF menggunakan Laravel-PDFMerger. Berikut adalah contoh langkah-langkahnya:
Buat Controller
Pertama, buatlah sebuah Controller baru untuk mengelola proses penggabungan PDF. kita bisa menggunakan perintah artisan untuk membuat controller:
php artisan make:controller PDFMergerController Kemudian buka file controller yang baru saja dibuat tersebut dan sesuaikan kodenya menjadi seperti di bawah ini.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Webklex\PDFMerger\Facades\PDFMergerFacade as PDFMerger;
class PDFMergerController extends Controller
{
public function merge(Request $request)
{
$this->validate($request, [
'files' => 'required',
'files.*' => 'mimes:pdf'
]);
$files = $request->file('files');
if ($request->hasFile('files')) {
$pdf = PDFMerger::init();
foreach ($files as $file) {
$pdf->addPDF($file->getRealPath(), 'all');
}
$pdf->merge();
$filename = time() . '.pdf';
Storage::disk('public')->put($filename, $pdf->output());
}
return response()->download(storage_path('app/public/' . $filename));
}
} Pada PDFMergerController, kita menambahkan method merge beserta fungsi merge PDF dari laravel-pdfmerger package dan kita tambahkan fungsi download file hasil merger.
Setup Route
Selanjutnya buka file routes/web.php dan tambahkan route seperti di bawah ini.
Route::post('merger-pdf',[App\Http\Controllers\PDFMergerController::class, 'merge'])->name('merge-pdf'); Setup View
Kemudian, mari kita buat tampilannya. Silakan buka file welcome.blade.php dan ubah kodenya menjadi seperti di bawah ini.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>
Merge PDF Files in Laravel
</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
</head>
<body>
<main class="py-5">
<div class="container">
<div class="row d-flex justify-content-center">
<div class="col-8">
<h2 class="fs-5 py-4 text-center">
Merge PDF Files in Laravel
</h2>
<div class="card border rounded shadow">
<div class="card-body">
<form method="POST" action="{{ route('merge-pdf') }}" enctype="multipart/form-data">
@csrf
<div class="mb-3">
<label for="files" class="form-label">Files</label>
<input type="file" name="files[]" id="files" class="form-control" multiple>
</div>
<button class="btn btn-primary" type="submit">Merge</button>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm" crossorigin="anonymous"></script>
</body>
</html> Pada view welcome.blade.php, kita hanya akan menambahkan form yang mengarah ke route pdf merger.
Testing
Oke, setelah melakukan langkah-langkah di atas, sekarang coba jalankan laravel project kalian dan buka pada browser. Coba pilih beberapa file PDF dan klik Merge, jika berhasil maka file hasil dari merge akan terdownload.

Kesimpulan
Dengan menggunakan package Laravel-PDFMerger dari Webklex, Kita dapat dengan mudah menggabungkan beberapa file PDF menjadi satu file yang lebih mudah dikelola dan dibagikan. Dengan langkah-langkah yang telah dijelaskan di atas, Kita dapat mengintegrasikan fungsi penggabungan PDF ke dalam proyek Laravel Kita dengan cepat dan efisien. Package ini menawarkan fleksibilitas dan kemudahan penggunaan, memudahkan Kita dalam mengelola dan memanipulasi dokumen PDF sesuai kebutuhan Kita.
Full Documentation: Laravel PDF Merger
Published on August 06, 2023Last updated on June 03, 2026