Cara Mudah Membuat Fitur Export PDF di Laravel Menggunakan DomPDF
Pernah nggak sih lo dapet task dari klien atau bos buat bikin fitur cetak laporan ke PDF, terus lo langsung kena mental breakdown? Jujurly, berurusan sama file PDF di web development itu kadang emang bikin overthinking. Kalau lo nyoba bikin dari nol pake library bawaan PHP yang jadul, siap-siap aja codingan lo jadi sepanjang jalan kenangan.
Tapi tenang, buat lo kaum developer Laravel, ada satu lifehack alias library sakti yang namanya DomPDF.
Sesuai namanya, library ini literally bakal nyulap file HTML (Blade) yang udah lo bikin sedemikian rupa, langsung jadi file PDF yang aesthetic. Nggak pake ribet, nggak pake drama. Sini gue spill tutorial sat-set cara pasangnya!
1. Install Package DomPDF (Tahap Pemanasan)
Buka terminal di project Laravel lo. Pastiin lo udah masuk ke directory yang bener, ya. Terus, tinggal panggil composer buat narik library sakti ini:
composer require barryvdh/laravel-dompdf
Tungguin proses download-nya sampai kelar. Kalau lo pake Laravel versi modern (versi 8 ke atas), library ini udah auto-discover. Artinya, lo nggak perlu lagi repot-repot nambahin Provider atau Alias secara manual di file config/app.php. Effortless banget!
2. Bikin Route Biar Bisa Diakses
Sekarang kita bikin rutenya dulu. Buka file routes/web.php dan tambahin endpoint baru buat ngakses fitur export ini.
use App\Http\Controllers\ReportController;
// Kalo URL ini di-hit, dia bakal langsung nge-download PDF-nya
Route::get('/export-pdf', [ReportController::class, 'exportPdf']);
3. Eksekusi di Controller (The Magic Happens Here)
Bikin controller baru atau pake yang udah ada. Di sini, kita bakal ngirim data (misalnya dari database) ke dalam view, terus view itu bakal di-convert jadi PDF sama si DomPDF.
Buka controller lo (misal: ReportController.php), dan jangan lupa import Facade PDF-nya di bagian atas!
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade\Pdf; // <-- INI WAJIB BANGET, JANGAN LUPA!
class ReportController extends Controller
{
public function exportPdf()
{
// 1. Siapin data yang mau ditampilin (bisa dari model/database)
$data = [
'judul' => 'Laporan Anak Senja',
'tanggal' => date('d-m-Y'),
'isi_laporan' => 'Ini adalah contoh isi laporan yang dibikin pakai DomPDF. Keren kan?'
];
// 2. Load view Blade dan masukin datanya
$pdf = Pdf::loadView('pdf.laporan', $data);
// 3. Langsung download file PDF-nya!
return $pdf->download('Laporan-Aesthetic.pdf');
// Pro Tip: Kalau lo cuma mau nampilin PDF-nya di browser (preview)
// tanpa langsung auto-download, ganti jadi:
// return $pdf->stream('Laporan-Aesthetic.pdf');
}
}
4. Bikin Tampilan (View) Blade-nya
Langkah terakhir, lo tinggal bikin desain laporannya pakai HTML biasa. Bikin folder baru namanya pdf di dalam folder resources/views, terus bikin file laporan.blade.php.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Export PDF DomPDF</title>
<style>
/* Kasih styling CSS dikit biar nggak flat banget */
body {
font-family: Arial, sans-serif;
color: #333;
}
h1 {
text-align: center;
color: #ff6b6b; /* Warna pastel ala Gen Z */
}
.content {
margin-top: 30px;
padding: 20px;
border: 1px solid #ddd;
}
</style>
</head>
<body>
<h1>{{ $judul }}</h1>
<p><strong>Tanggal Cetak:</strong> {{ $tanggal }}</p>
<div class="content">
<p>{{ $isi_laporan }}</p>
</div>
</body>
</html>
Note: DomPDF emang jago banget baca HTML, tapi dia agak rewel kalau lo pakai CSS yang terlalu modern kayak Flexbox atau Grid. Jadi, buat layout PDF-nya, mending lo balik ke era purba pakai <table> atau CSS dasar kayak float dan margin/padding biar hasilnya nggak berantakan.
Kesimpulan
See? Bikin fitur export PDF di Laravel pakai DomPDF itu literally nggak butuh waktu lama. Cuma butuh tiga step utama: Install, panggil Pdf::loadView(), lalu download().
Sekarang, kalau ada request buat bikin laporan PDF, lo udah bisa ngerjainnya sambil merem. Selamat ngoding dan semoga error-nya dikit, ya!
Posting Komentar untuk "Cara Mudah Membuat Fitur Export PDF di Laravel Menggunakan DomPDF"