Export PHP mPDF

Ekspor PHP Mysql ke PDF Menggunakan Library mPDF

Diposting pada 10.986 views

Pada kali ini saya akan menulis tutorial untuk mengekspor data dari PHP dan Mysql ke PDF menggunakan Library mPDF. Library mPDF ini adalah sebuah library yang digunakan untuk mengeksport data ke dalam file pdf. tanpa basa basi mari kita langsung praktekkan.

Langkah pertama yang harus dilakukan yaitu membuat folder baru di dalam htdocs xampp, disini saya membuat folder dengan nama belajar. kemudian kita perlu menginstall library mPDF ke dalam folder belajar menggunakan composer (Kalian harus menginstall software composer dulu). Perintah untuk menginstall mPDF seperti dibawah ini

$ composer require mpdf/mpdf

Tunggu hingga instalasi mpdf selesai. Setelah instalasi selesai, kita buat database baru dengan nama belajar dan import kode berikut

-- phpMyAdmin SQL Dump
-- version 4.8.3
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Aug 16, 2020 at 12:33 PM
-- Server version: 10.1.36-MariaDB
-- PHP Version: 7.2.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `belajar`
--

-- --------------------------------------------------------

--
-- Table structure for table `mahasiswa`
--

CREATE TABLE `mahasiswa` (
  `id` int(11) NOT NULL,
  `nim` varchar(50) NOT NULL,
  `nama` varchar(100) NOT NULL,
  `fakultas` varchar(100) NOT NULL,
  `jurusan` varchar(100) NOT NULL,
  `asal` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `mahasiswa`
--

INSERT INTO `mahasiswa` (`id`, `nim`, `nama`, `fakultas`, `jurusan`, `asal`) VALUES
(1, '180441100001', 'Raffi Ahmad', 'Fakultas Teknik', 'Teknik Informatika', 'Jakarta'),
(2, '180441100002', 'Nagita Slavina', 'Fakultas Teknik', 'Ilmu Komputer', 'Bandung'),
(3, '180441100003', 'Eko Patrio', 'Fakultas Pertanian', 'Teknologi Industri Pertanian', 'Nganjuk'),
(4, '180441100004', 'Tukul Arwana', 'Fakultas MIPA', 'Fisika', 'Ponorogo'),
(5, '180441100005', 'Ferdian Setiawan', 'Fakultas Pertanian', 'Ilmu Pertanian', 'Malang');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `mahasiswa`
--
ALTER TABLE `mahasiswa`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `mahasiswa`
--
ALTER TABLE `mahasiswa`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Kemudian buat file baru dengan nama koneksi.php yang akan kita gunakan untuk membuat koneksi ke database. Berikut isi file koneksi.php

<?php
//variabel koneksi
$konek = mysqli_connect("localhost","root","","belajar");
if(!$konek){
	die("Koneksi ke database gagal");
}
?>

Setelah itu, buat file baru dengan nama index.php. File ini akan kita gunakan untuk menampilkan data dari database ke browser. berikut isi dari file index.php

<?php 

	include "koneksi.php";

	$data = mysqli_query($konek, "SELECT * FROM mahasiswa");

?>

<!DOCTYPE html>
<html>
<head>
	<title>Belajar Ekspor PDF menggunakan mPDF</title>
	<style type="text/css">
		td{
			padding: 3px 3px;
		}
	</style>
</head>
<body>
<h1 align="center">Belajar mPDF</h1>
<h3 align="center">Data Mahasiswa</h3>
<table style="border-collapse:collapse;border-spacing:0;" align="center" border="1">
	<thead>
		<tr>
			<th>No.</th>
			<th>NIM</th>
			<th>Nama</th>
			<th>Fakultas</th>
			<th>Jurusan</th>
			<th>Asal Kota</th>
		</tr>
	</thead>
	<tbody>
	<?php 
	while ($mhs = mysqli_fetch_assoc($data)) {
		echo "<tr>";
		echo "<td>$mhs[id]</td>";
		echo "<td>$mhs[nim]</td>";
		echo "<td>$mhs[nama]</td>";
		echo "<td>$mhs[fakultas]</td>";
		echo "<td>$mhs[jurusan]</td>";
		echo "<td>$mhs[asal]</td>";
	}
	?>
	</tbody>
</table>
<br>
<div align="center"><a href="cetak.php" target="_blank"><button>Cetak</button></a></div>
</body>
</html>

Berikut tampilan index yang sudah kita buat

tampilan index.php

Terakhir kita perlu membuat file cetak.php. File ini digunakan untuk menggenerate file pdf. Berikut isi kode dari file cetak.php.

<?php 
	
	//Mengaktifkan output buffering
	ob_start();

	include "koneksi.php";

	$data = mysqli_query($konek, "SELECT * FROM mahasiswa");

?>

<!DOCTYPE html>
<html>
<head>
	<title>Belajar Ekspor PDF menggunakan mPDF</title>
	<style type="text/css">
		td{
			padding: 3px 3px;
		}
	</style>
</head>
<body>
<h3 align="center">Data Mahasiswa</h3>
<table style="border-collapse:collapse;border-spacing:0;" align="center" border="1">
	<thead>
		<tr>
			<th>No.</th>
			<th>NIM</th>
			<th>Nama</th>
			<th>Fakultas</th>
			<th>Jurusan</th>
			<th>Asal Kota</th>
		</tr>
	</thead>
	<tbody>
	<?php 
	while ($mhs = mysqli_fetch_assoc($data)) {
		echo "<tr>";
		echo "<td>$mhs[id]</td>";
		echo "<td>$mhs[nim]</td>";
		echo "<td>$mhs[nama]</td>";
		echo "<td>$mhs[fakultas]</td>";
		echo "<td>$mhs[jurusan]</td>";
		echo "<td>$mhs[asal]</td>";
	}
	?>
	</tbody>
</table>
</body>
</html>

<?php 

	//Meload library mPDF
	require 'vendor/autoload.php';

	//Membuat inisialisasi objek mPDF
	$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4','margin_top' => 25, 'margin_bottom' => 25, 'margin_left' => 25, 'margin_right' => 25]);

	//Memasukkan output yang diambil dari output buffering ke variabel html
	$html = ob_get_contents();

	//Menghapus isi output buffering
	ob_end_clean();

	$mpdf->WriteHTML(utf8_encode($html));

	//Membuat output file
	$content = $mpdf->Output("CETAK.pdf", "D");

?>

Berikut penjelasan pada file cetak.php

ob_start();

Fungsi ob_start() pada baris ke 4 digunakan untuk mengaktifkan output buffering.

require 'vendor/autoload.php';

Baris kode diatas digunakan untuk meload library mPDF.

$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4','margin_top' => 25, 'margin_bottom' => 25, 'margin_left' => 25, 'margin_right' => 25]);

Baris diatas digunakan untuk melakukan inisialisasi. pada inisialisasi diatas kita menggunakan format kertas A4 dengan margin top, left, bottom, right adalah 25 mm.

$html = ob_get_contents();

Selanjutnya, pada baris diatas kita membuat variabel $html yang kita gunakan untuk menampung output yang kita ambil dari output buffering.

ob_end_clean();

baris diatas kita gunakan untuk menghapus isi output buffering agar hasil output tidak tampil di browser pengguna.

$content = $mpdf->Output("CETAK.pdf", "D");

Pada baris terakhir kita akan memanggil method output dengan parameter pertama adalah nama file dan parameter kedua adalah “D”. Parameter D digunakan untuk mendownload hasil pdf. Dan berikut hasil pdfnya

Hasil ekspor pdf mPDF

Okee sampai disini saja tutorial saya tentang cara Ekspor Data PHP Mysql ke PDF Mengunakan Library mPDF. Semoga bermanfaat 🙂

1 komentar

  1. maaf mau tanya, kalau misalkan kita mau buat /field menjadi 1 halaman terpisah bagaimana ya? jadi kalau dr contoh diatas outputnya menjadi 5 halaman didalam 1 file pdf

Komentar ditutup.