
Introduction
Halo, teman-teman developer! Jika Anda sedang membangun aplikasi web menggunakan Laravel 11 dan ingin menambahkan fitur untuk meng-export data ke format PDF, maka artikel ini tepat untuk Anda. Menghasilkan file PDF dari data aplikasi seringkali diperlukan, baik itu untuk laporan, tagihan, struk pembayaran, atau dokumen lainnya yang perlu didownload atau dicetak oleh pengguna.
Dalam tutorial ini, saya akan menunjukkan cara mudah dan praktis untuk meng-export data ke PDF di Laravel 11. Kita akan menggunakan package DomPDF yang sangat populer untuk menghasilkan file PDF dalam aplikasi Laravel. Tutorial ini akan membahas langkah-langkah secara detail, mulai dari instalasi Laravel, setup DomPDF, hingga implementasi fungsionalitas export PDF yang bisa langsung Anda gunakan. Yuk, simak selengkapnya!
Langkah 1: Install Project Laravel 11
Sebelum kita mulai mengimplementasikan fitur export PDF, pastikan Anda sudah memiliki project Laravel yang aktif. Jika belum, berikut adalah cara menginstal Laravel 11 untuk memulai project baru.
1.1 Install Laravel 11 dengan Composer
Buka terminal atau command prompt, lalu jalankan perintah berikut untuk membuat project Laravel baru:
composer create-project --prefer-dist laravel/laravel laravel-export-pdf
Perintah ini akan mengunduh dan menginstal Laravel versi terbaru di dalam folder laravel-export-pdf
. Setelah itu, masuk ke dalam folder project:
cd laravel-export-pdf
1.2 Jalankan Server Development Laravel
Untuk memastikan Laravel terinstal dengan benar, jalankan server lokal dengan perintah:
php artisan serve
Sekarang Anda dapat membuka browser dan mengakses aplikasi Laravel Anda di http://127.0.0.1:8000
untuk memastikan semuanya berjalan lancar.
Langkah 2: Install Package DomPDF di Laravel 11
Untuk meng-export data ke PDF, kita akan menggunakan package DomPDF yang memudahkan kita membuat file PDF di Laravel. Laravel sendiri menyediakan package barryvdh/laravel-dompdf yang merupakan wrapper untuk DomPDF di Laravel.
2.1 Install barryvdh/laravel-dompdf
Buka terminal di folder project Laravel Anda, kemudian jalankan perintah berikut untuk menginstal package DomPDF:
composer require barryvdh/laravel-dompdf
Setelah instalasi selesai, package ini akan otomatis terkonfigurasi pada Laravel 11 Anda, jadi Anda tidak perlu mengubah konfigurasi apa pun.
Langkah 3: Buat Controller untuk Export ke PDF
Sekarang, kita akan membuat controller yang akan menangani permintaan export ke PDF. Di controller ini, kita akan mengambil data yang ingin di-export, kemudian merendernya ke dalam file PDF.
3.1 Membuat Controller Export
Buka terminal dan jalankan perintah berikut untuk membuat controller ExportController
:
php artisan make:controller ExportController
Setelah controller berhasil dibuat, buka file ExportController.php
yang ada di dalam folder app/Http/Controllers
dan tambahkan kode berikut untuk menangani proses export PDF:
3.2 Menulis Fungsi Export PDF
Buka file ExportController.php
dan ubah isinya seperti berikut:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Models\User;
class ExportController extends Controller
{
public function exportToPDF()
{
// Ambil data yang akan diexport (misalnya data pengguna)
$users = User::all();
// Merender tampilan (view) ke dalam PDF
$pdf = Pdf::loadView('pdf.users', compact('users'));
// Mengunduh file PDF
return $pdf->download('users.pdf');
}
}
Penjelasan kode di atas:
- Pada method
exportToPDF()
, kita mengambil semua data pengguna dari database menggunakanUser::all()
. - Kita menggunakan facade
Pdf::loadView()
untuk merender file PDF menggunakan tampilan (view) yang sudah kita buat. Tampilan ini akan berisi struktur HTML yang akan dikonversi menjadi PDF. - Terakhir, kita mengunduh file PDF yang dihasilkan dengan
download('users.pdf')
.
Langkah 4: Menambahkan Route untuk Export PDF
Sekarang kita perlu menambahkan route yang akan mengarahkan pengguna ke fungsi exportToPDF
yang telah kita buat di controller. Buka file routes/web.php
dan tambahkan kode berikut:
use App\Http\Controllers\ExportController;
Route::get('export-pdf', [ExportController::class, 'exportToPDF']);
Dengan route ini, pengguna bisa mengakses URL http://localhost:8000/export-pdf
untuk mengekspor data pengguna ke PDF.
Langkah 5: Membuat View untuk PDF
Selanjutnya, kita perlu membuat view yang akan digunakan untuk merender file PDF. Kita akan menggunakan view untuk mendefinisikan bagaimana tampilan PDF tersebut nantinya. File ini akan berisi markup HTML yang kemudian akan diubah menjadi PDF oleh DomPDF.
Buat file baru di folder resources/views/pdf/
dengan nama users.blade.php
. Isi file tersebut dengan kode berikut:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Daftar Pengguna</title>
</head>
<body>
<h1>Daftar Pengguna</h1>
<table border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Email</th>
<th>Alamat</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->address }}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
Penjelasan kode di atas:
- Ini adalah file HTML sederhana yang mendefinisikan struktur tabel untuk menampilkan data pengguna.
- Setiap data pengguna seperti ID, nama, email, dan alamat akan ditampilkan dalam tabel.
- Ketika kita merender view ini menjadi PDF, tabel ini akan dikonversi menjadi format PDF dengan gaya HTML yang sederhana.
Langkah 6: Uji Coba Fitur Export PDF
Sekarang saatnya untuk menguji fitur export PDF yang sudah kita buat.
- Pastikan Anda sudah memiliki beberapa data pengguna di database Anda. Anda bisa menambahkannya menggunakan seeder atau tinker.
- Akses URL
http://localhost:8000/export-pdf
di browser. File PDF yang berisi data pengguna akan terunduh secara otomatis dengan namausers.pdf
.
Langkah 7: Menyesuaikan Tampilan PDF (Opsional)
Jika Anda ingin menyesuaikan lebih lanjut tampilan PDF, Anda bisa menambahkan CSS di dalam view untuk memberikan gaya yang lebih baik pada dokumen PDF. Misalnya, untuk membuat tabel lebih rapi, Anda bisa menambahkan beberapa styling seperti berikut:
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 8px;
text-align: left;
border: 1px solid #ddd;
}
th {
background-color: #f2f2f2;
}
</style>
Dengan menambahkan CSS ini, tabel di PDF akan terlihat lebih rapi dan mudah dibaca.
Kesimpulan
Fitur export ke PDF di Laravel 11 sangat mudah diimplementasikan dengan menggunakan DomPDF dan package barryvdh/laravel-dompdf. Anda hanya perlu mengikuti beberapa langkah sederhana, mulai dari instalasi Laravel, menambahkan package DomPDF, hingga membuat controller dan view untuk mengekspor data ke file PDF. Dengan fitur ini, aplikasi Laravel Anda akan semakin lengkap dan memudahkan pengguna untuk mendownload atau mencetak dokumen dalam format PDF.
Dengan mengikuti tutorial ini, Anda dapat dengan mudah menambahkan kemampuan export PDF ke aplikasi Laravel Anda. Semoga artikel ini bermanfaat, dan selamat mencoba!
Leave a Reply