TCPDF adalah salah satu pustaka PHP yang populer untuk membuat file PDF secara langsung dari kode. Berikut adalah langkah-langkah untuk menggunakan TCPDF untuk membuat PDF.
1. Tanpa Database
1. Instalasi TCPDF
Unduh TCPDF melalui:
2. Membuat PDF dengan TCPDF
Contoh sederhana untuk membuat PDF.
Langkah 1: Buat file PHP, misalnya index.php
.
<?php
require_once('tcpdf/tcpdf.php'); // Pastikan path ke TCPDF benar
// Buat instance TCPDF
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
// Set metadata dokumen
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nama Anda');
$pdf->SetTitle('Judul Dokumen');
$pdf->SetSubject('Subjek PDF');
$pdf->SetKeywords('TCPDF, PDF, contoh, panduan');
// Set margin dokumen
$pdf->SetMargins(15, 15, 15);
$pdf->SetHeaderMargin(10);
$pdf->SetFooterMargin(10);
// Set header dan footer
$pdf->setPrintHeader(true);
$pdf->setPrintFooter(true);
$pdf->SetHeaderData('', 0, 'Judul Header', 'Deskripsi Header');
$pdf->setFooterData([0, 64, 0], [0, 64, 128]);
// Set font
$pdf->SetFont('helvetica', '', 12);
// Tambahkan halaman
$pdf->AddPage();
// Isi konten PDF
$html = <<<EOD
<h1>Halo Dunia!</h1>
<p>Ini adalah contoh dokumen PDF yang dibuat menggunakan <b>TCPDF</b>.</p>
<ul>
<li>Fitur 1</li>
<li>Fitur 2</li>
<li>Fitur 3</li>
</ul>
EOD;
// Tulis konten ke PDF
$pdf->writeHTML($html, true, false, true, false, '');
// Output file PDF ke browser
$pdf->Output('contoh_dokumen.pdf', 'I'); // 'I' untuk menampilkan di browser, 'D' untuk unduh
3. Penjelasan Kode
- Instansiasi TCPDF:
- Parameter:
'P'
: Portrait (orientasi potret).'mm'
: Unit pengukuran (milimeter).'A4'
: Ukuran kertas.
- Parameter:
- Metadata Dokumen:
- Mengatur informasi dasar PDF seperti pembuat, judul, dan kata kunci.
- Header dan Footer:
- Gunakan
SetHeaderData
dansetFooterData
untuk mengatur isi header dan footer.
- Gunakan
- Konten PDF:
- Menggunakan metode
writeHTML
untuk menambahkan konten berbasis HTML.
- Menggunakan metode
- Output:
Output('nama_file.pdf', 'I')
:'I'
: Tampilkan di browser.'D'
: Unduh langsung.'F'
: Simpan ke file di server.'S'
: Return sebagai string.
4. Menambahkan Gambar
Tambahkan gambar ke PDF dengan:
$pdf->Image('path_to_image.jpg', 15, 40, 50, 50, 'JPG', '', 'T', false, 300, '', false, false, 1, false, false, false);
5. Tambahan
Font Kustom
Jika menggunakan font kustom:
- Convert font menggunakan
tcpdf_addfont.php
yang ada di folder TCPDF. - Tambahkan font ke PDF:
$pdf->SetFont('custom_font', '', 12);
Menggunakan Tabel HTML
TCPDF mendukung tabel berbasis HTML:
$html = <<<EOD
<table border="1" cellpadding="4">
<tr>
<th>Kolom 1</th>
<th>Kolom 2</th>
</tr>
<tr>
<td>Data 1</td>
<td>Data 2</td>
</tr>
</table>
EOD;
$pdf->writeHTML($html, true, false, true, false, '');

6. Output
Buka file PHP (index.php
) di browser, dan file PDF akan dihasilkan.
2. Dengan Database
Untuk membuat PDF menggunakan TCPDF dan data dari database SQL, Anda perlu mengambil data dari database dan memasukkannya ke dalam file PDF. Berikut langkah-langkahnya:
1. Persiapan Lingkungan
- Instal TCPDF:
Unduh TCPDF dari situs resmi TCPDF - Setup Database:
Siapkan database SQL, misalnya MySQL, dan buat tabel contoh.
2. Contoh Database dan Tabel
Buat tabel SQL (MySQL):
CREATE DATABASE pdf_example;
USE pdf_example;
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100),
product_name VARCHAR(100),
quantity INT,
price DECIMAL(10,2)
);
INSERT INTO orders (customer_name, product_name, quantity, price) VALUES
('John Doe', 'Laptop', 1, 1500.00),
('Jane Smith', 'Smartphone', 2, 800.00),
('Mike Johnson', 'Tablet', 1, 500.00);
3. Membuat File PHP
Buat file index.php
untuk menghubungkan database, mengambil data, dan menghasilkan PDF.
Kode PHP:
<?php
require_once('tcpdf/tcpdf.php'); // Pastikan path ke TCPDF benar
// Koneksi ke database
$host = "localhost";
$user = "root"; // Sesuaikan dengan username database
$pass = ""; // Sesuaikan dengan password database
$dbname = "pdf_example";
$conn = new mysqli($host, $user, $pass, $dbname);
// Periksa koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
// Query untuk mengambil data
$query = "SELECT * FROM orders";
$result = $conn->query($query);
if (!$result) {
die("Query gagal: " . $conn->error);
}
// Buat instance TCPDF
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
// Set metadata PDF
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Admin');
$pdf->SetTitle('Laporan Orders');
$pdf->SetSubject('Laporan Orders');
$pdf->SetKeywords('TCPDF, PDF, laporan, orders');
// Set margin
$pdf->SetMargins(15, 15, 15);
$pdf->SetHeaderMargin(10);
$pdf->SetFooterMargin(10);
// Set header dan footer
$pdf->setPrintHeader(true);
$pdf->setPrintFooter(true);
$pdf->SetHeaderData('', 0, 'Laporan Orders', 'Dibuat pada ' . date('Y-m-d'));
// Set font
$pdf->SetFont('helvetica', '', 12);
// Tambahkan halaman
$pdf->AddPage();
// Konten tabel dalam HTML
$html = '<h1>Laporan Orders</h1>';
$html .= '<table border="1" cellpadding="5" cellspacing="0">
<thead>
<tr style="background-color:#f2f2f2;">
<th>ID</th>
<th>Nama Pelanggan</th>
<th>Nama Produk</th>
<th>Kuantitas</th>
<th>Harga</th>
</tr>
</thead>
<tbody>';
// Masukkan data dari database ke tabel
while ($row = $result->fetch_assoc()) {
$html .= '<tr>
<td>' . $row['id'] . '</td>
<td>' . $row['customer_name'] . '</td>
<td>' . $row['product_name'] . '</td>
<td>' . $row['quantity'] . '</td>
<td>' . number_format($row['price'], 2) . '</td>
</tr>';
}
$html .= '</tbody></table>';
// Tulis konten HTML ke PDF
$pdf->writeHTML($html, true, false, true, false, '');
// Output file PDF
$pdf->Output('laporan_orders.pdf', 'I'); // 'I' untuk tampil di browser, 'D' untuk unduh langsung
// Tutup koneksi
$conn->close();
?>
4. Penjelasan Kode
- Koneksi ke Database:
mysqli
digunakan untuk menghubungkan aplikasi ke MySQL.- Ganti
localhost
,root
, dandbname
sesuai pengaturan Anda.
- Mengambil Data dari Database:
- Query SQL untuk mendapatkan semua data dari tabel
orders
.
- Query SQL untuk mendapatkan semua data dari tabel
- Membuat PDF:
- Gunakan metode
writeHTML()
untuk memasukkan tabel HTML ke PDF. - Tambahkan header, footer, dan metadata untuk personalisasi.
- Gunakan metode
- Output:
Output('laporan_orders.pdf', 'I')
: Menampilkan file PDF di browser.Output('laporan_orders.pdf', 'D')
: Mengunduh file PDF.
5. Output
- Akses file
index.php
melalui browser. - PDF akan menampilkan laporan data dari tabel
orders
dalam bentuk tabel.

Pengembangan Selanjutnya
- Tambahkan Gaya: Perindah tampilan tabel dengan CSS inline di HTML.
- Filter Data: Tambahkan fitur filter berdasarkan tanggal atau kategori tertentu.
- QR Code atau Barcode: Gunakan pustaka tambahan seperti
TCPDF QR Code
untuk menambahkan elemen QR code.
Jika ada pertanyaan lebih lanjut atau ingin menambahkan fitur tertentu, beri tahu saya! 😊
Leave a Reply