Pada tutorial kali ini kita akan belajar bareng bagaimana membuat fitur export pdf pada Laravel 12 menggunakan library DOMPdf.
1. Instalasi Laravel 12 dan Library DOMPdf
Untuk menginstall Laravel 12 kita bisa menggunakan perintah dibawah ini,
composer create-project laravel/laravel example-app
Note: pada perintah diatas akan menginstall Laravel 12 pada folder exammple-app
.
Selanjutnya untuk menginstall library DOMPdf kita bisa menggunakan perintah dibawah ini.
composer require barryvdh/laravel-dompdf
2. Buat Controller dan View
Selanjutnya kita buat sebuah controller dengan nama PDFController menggunakan perintah dibawah ini.
php artisan make:controller PDFController
Kemudian kita harus membuat 10 data dummy yang akan kita tampilkan pada file PDF, untuk membuatnya kita bisa menggunakan perintah tinker
seperti dibawah ini.
php artisan tinker
Lalu tuliskan code dibawah ini untuk mengenerate 10 data pada tinker
User::factory()->count(10)->create()
Lalu silahkan modifikasi file 'PDFController' seperti pada code berikut ini.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use PDF;
class PDFController extends Controller
{
public function generatePDF()
{
$users = User::get();
$data = [
'title' => 'solusikoding.com',
'date' => date('m/d/Y'),
'users' => $users
];
$pdf = PDF::loadView('export_pdf', $data);
return $pdf->download('solusikoding.pdf');
}
}
Kemudian, buka file routes/web.php
lalu modifikasi seperti dibawah ini.
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PDFController;
Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Langkah berikutnya kita buat file view dengan nama 'export_pdf.blade.php' pada folder 'resources/views/export_pdf.blade.php' lalu kalian ketikan code berikut ini.
<!DOCTYPE html>
<html>
<head>
<title>Tutorial Laravel 12 Generate PDF menggunakan Library DOMPdf - solusikoding.com</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" >
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 8px;
text-align: left;
}
</style>
</head>
<body>
<h1>{{ $title }}</h1>
<p>{{ $date }}</p>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
Setelah beberapa proses yang telah kita lewati, berikutnya kita harus menjalankan project laravel menggunakan perintah ini
php artisan serve
lalu buka browser dan arahkan ke url
http://localhost:8000/generate-pdf
Jika tidak ada error maka aplikasi kita akan mendownload file dengan nama solusikoding.pdf dengan isi seperti dibawah ini.