Halo, di tutorial CodeIgniter 4 kali ini kita akan bahas cara generate PDF di aplikasi CodeIgniter 4. Sama halnya dengan tutorial export excel, di tutorial ini juga kita akan mencoba menggunakan sebuah library yang sering digunakan untuk generate pdf atau export file dalam format pdf, yaitu library Dompdf.
dompdf adalah sebuah library yang berfungsi sebagai converter HTML ke dalam format PDF. Pada intinya, library ini merupakan sebuah engine yang ditulis dalam PHP untuk merender layout HTML yang sesuai dengan CSS2.1. Berdasarkan catatan di repositorinya, dompdf ini style-driven renderer, yang artinya, library ini dapat menggunakan css dari eksternal, inline style tag maupun style dari masing-masing element HTML dan juga mendukung sebagian besar atribut HTML. Nah, jadi di tutorial CodeIgniter 4 kali ini, kita akan coba mengubah sebuah halaman HTML menjadi file dengan format pdf. Yuk kita mulai~
Pertama kita install CodeIgniter 4 menggunakan composer
. Buka terminal, lalu run command
ini untuk menginstall CodeIgniter 4.
composer create-project codeigniter4/appstarter ci4-pdf-example
Setelah dirun, proses instalasi codeigniter 4 dimulai. Kita tunggu sampai proses installnya selesai.
Langkah kita berikutnya adalah menginstall library DomPDF. Berdasarkan repositori DomPDF, ada beberapa cara untuk menginstall DomPDF. Salah satunya adalah menginstall melalui composer
. Sebelum menginstall library, kita masuk dulu ke dalam direktori project.
cd ci4-pdf-example
Selanjutnya kita install DomPDF, run command
di bawah ini.
composer require dompdf/dompdf
Tunggu sampai proses instalasi selesai. Karena kita menginstall menggunakan composer
, DomPDF bisa langsung kita gunakan tanpa perlu ada konfigurasi.
Kita buat sebuah controller yang akan menangani proses generate PDF menggunakan DomPDF, misalkan namanya itu PdfController
. Di dalam class PdfController
, kita buat dua method. Method yang pertama untuk menampilkan halaman utama yang memiliki link untuk generate pdf dan method kedua untuk menangani proses generate PDF menggunakan DomPDF.
Sekarang kita buat file baru dengan nama PdfController.php
di app/Controllers
. Kita tambahkan kode berikut ini di dalam file PdfController.php
.
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use Dompdf\Dompdf;
class PdfController extends Controller
{
public function index()
{
return view('pdf_view');
}
public function generate()
{
$filename = date('y-m-d-H-i-s'). '-qadr-labs-report';
// instantiate and use the dompdf class
$dompdf = new Dompdf();
// load HTML content
$dompdf->loadHtml(view('pdf_view'));
// (optional) setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// render html as PDF
$dompdf->render();
// output the generated pdf
$dompdf->stream($filename);
}
}
Setelah selesai, kita save file PdfController.php
.
Langkah selanjutnya adalah membuat file view. File view yang akan kita buat ini digunakan untuk menampilkan halaman utama dan juga digunakan untuk tampilan pdf hasil generate menggunakan DomPDF. Buat file baru dengan nama pdf_view.php
di app\Views
, lalu kita ketik kode berikut ini.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Generate PDF CodeIgniter 4 - qadrLabs</title>
</head>
<body>
<h2>Data Mahasiswa </h2>
<a href="<?php echo site_url('pdf/generate') ?>">
Download PDF
</a>
<table border=1 width=80% cellpadding=2 cellspacing=0 style="margin-top: 5px; text-align:center">
<thead> <tr bgcolor=silver align=center>
<td width="5%">No</td>
<td width="25%">Nim</td>
<td width="50%">Nama</td>
<td width="20%">Nilai</td>
</tr> </thead> <tbody> <tr> <td>1</td>
<td>1930511041</td>
<td>Resita</td>
<td>85</td>
</tr> <tr> <td>2</td>
<td>1930511044</td>
<td>Tika</td>
<td>85</td>
</tr> <tr> <td>3</td>
<td>1930511050</td>
<td>Ramdan</td>
<td>80</td>
</tr> <tr> <td>4</td>
<td>1930511051</td>
<td>Nahla</td>
<td>85</td>
</tr> <tr> <td>5</td>
<td>1930511052</td>
<td>Reski</td>
<td>95</td>
</tr> </tbody></table>
<p>Jumlah data : 5</p>
</body>
</html>
Setelah selesai, kita save file view pdf_view.php
.
Langkah terakhir untuk fitur generate pdf menggunakan DomPDF di aplikasi CodeIgniter 4 ini adalah mendefinisikan route. Buka file app/Config/Routes.php
. Temukan kode ini di sekitar baris 35.
$routes->get('/', 'Home::index');
Kita ubah routenya, kita arahkan ke controller yang baru saja kita buat.
$routes->get('/', 'PdfController::index');
Selanjutnya kita tambahkan route kedua untuk proses generate pdf.
$routes->get('/pdf/generate', 'PdfController::generate');
Jadi sekarang kita sudah definisikan dua route.
/*
* -------------------------------------------------------------------- * Route Definitions * -------------------------------------------------------------------- */
// We get a performance increase by specifying the default
// route since we don't have to scan directories.
$routes->get('/', 'PdfController::index');
$routes->get('/pdf/generate', 'PdfController::generate');
Save kembali file Routes.php
.
Untuk menguji coba, kita run aplikasi codeigniter 4 menggunakan command
.
php spark serve
Selanjutnya buka url ini di browser.
http://localhost:8080
Kita bisa lihat halaman sederhana yang menampilkan data mahasiswa. Selanjutnya kita coba download file pdf hasil generate menggunakan DomPDF dengan menekan link download. Aplikasi akan memulai proses generate PDF, dan hasilnya dapat kita download berupa file pdf.
Di tutorial ini, kita sudah bisa menginstall dan menggunakan library domPDF untuk melakukan proses generate PDF di aplikasi CodeIgniter 4. Dengan library ini kita bisa membuat file pdf dengan mengubahnya dari file view yang kita tentukan.
© 2024 qadrLabs . All rights reserved. 000515268