Membangkitkan Dokumen PDF dengan Script PHP dan Library TCPDF

Membangkitkan Dokumen PDF dengan Script PHP dan Library TCPDF

Tutorial Information

ProgramPHP
DifficultyStandar
Estimated Time30 Menit

Pernahkah Anda mendapati sebuah situs web yang dapat membangkitkan dokumen PDF yang kemudian dapat diunduh? Misalnya dalam sebuah sistem informasi akademik kemahasiswaan, sistem tersebut…

Pernahkah Anda mendapati sebuah situs web yang dapat membangkitkan dokumen PDF yang kemudian dapat diunduh? Misalnya dalam sebuah sistem informasi akademik kemahasiswaan, sistem tersebut dapat mencetak kartu rencana studi mahasiswa dalam bentuk dokumen PDF. Atau saat Anda melakukan transaksi internet banking, aplikasi web tersebut harus dapat mencetak bukti transfer dalam bentuk dokumen PDF.

Salah satu library yang dapat digunakan untuk membuat dokumen PDF seperti yang dimaksud di atas yaitu TCPDF (www.tcpdf.org). TCPDF memuat beberapa kelas PHP untuk memudahkan pengguna mencetak dokumen PDF. Selain itu, TCPDF juga menawarkan banyak fitur untuk membangkitkan dan memodifikasi sebuah dokumen PDF melalui script PHP.

Berikut adalah langkah-langkah instalasi dan penggunaan TCPDF:

Anda bisa memulai tutorial kali ini dengan mengunduh library TCPDF (pilih file tcpdf_version.zip) pada tautan ini: http://sourceforge.net/projects/tcpdf/files/

Langkah selanjutnya adalah mengekstrak file hasil unduhan tersebut ke dalam web server Anda. Jika Anda menggunakan XAMPP, letakkan folder tcpdf tersebut di dalam folder htdocs. Di dalam folder tcpdf terdapat beberapa macam folder yang berisi komponen-komponen seperti file konfigurasi, library tcpdf, contoh aplikasi, dan sebagainya.

BisaKomputer - TCPDF

sampai di sini buatlah sebuah folder, misalnya folder ‘latihan’. Kemudian membuat sebuah file bernama index.php. Isi folder ‘latihan’ tampak sebagai berikut (folder barcodes, config, data, images, lang, dan tcpdf_include.php merupakan komponen default TCPDF yang dapat di-copy-paste dari folder examples)

BisaKomputer - TCPDFPada file index.php, masukkan kode program berikut. Kode program berikut merupakan kode program untuk membuat sebuah form yang meminta input dari pengguna.

<html>
<head>
	<title>Cetak Formulir dengan TCPDF</title>
</head>
<body>
	<h3>Cetak Formulir dengan TCPDF</h3>
	<form action="cetak.php" method="GET">
		<table>
			<tr>
				<td>Nama</td>
				<td>:</td>
				<td><input type="text" name="nama"></td>
			</tr>
			<tr>
				<td>Perusahaan</td>
				<td>:</td>
				<td><input type="text" name="perusahaan"></td>
			</tr>
			<tr>
				<td>Profil</td>
				<td>:</td>
				<td><textarea name="profil" rows="4" cols="50"></textarea></td>
</tr>
			<tr>
				<td></td>
				<td></td>
				<td><input type="submit" name="submit" value="Cetak"></td>
			</tr>
		</table>
	</form>
</body>
</html>

Membuat sebuah file dengan nama cetak.php. File ini digunakan sebagai aksi dari form index.php. File ini akan membangkitkan dokumen PDF berdasarkan isian pengguna.

<?php

// menangkap isi variabel dari index.php
$nama = $_GET['nama'];
$perusahaan = $_GET['perusahaan'];
$profil = $_GET['profil'];

// memasukkan pustaka TCPDF utama
require_once('tcpdf_include.php');

// membuat dokumen PDF baru
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// menambahkan informasi dokumen
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Aditya Rizki');
$pdf->SetTitle('Cetak Formulir dengan TCPDF');
$pdf->SetSubject('Cetak Formulir dengan TCPDF');
$pdf->SetKeywords('TCPDF, PDF, contoh, formulir, cetak');

// mengeset bahasa
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
	require_once(dirname(__FILE__).'/lang/eng.php');
	$pdf->setLanguageArray($l);
}

// ---------------------------------------------------------

// mengeset font default untuk moda subsetting
$pdf->setFontSubsetting(true);

// mengeset font
$pdf->SetFont('dejavusans', '', 14, '', true);

// menambahkan halaman baru, terdapat beberapa opsi, dapat dicek di dokumentasi
$pdf->AddPage();

// mengeset efek teks bayangan
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
// mencetak konten ke dalam PDF
$html = <<<EOD
<h1>$nama</h1>
<i>- $perusahaan</i><br><br>
<b>Profil</b>
<p>$profil</p>
EOD;

// mencetak teks menggunakan writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

// ---------------------------------------------------------

// Menutup dan mengeluarkan dokumen PDF
$pdf->Output('example_001.pdf', 'I');

//============================================================+
// END OF FILE
//============================================================+

Menjalankan Kode Program

  1. Akses file index.php pada browser, sehingga muncul tampilan sebagai berikut.
    BisaKomputer - TCPDF
  2. Kemudian isikan input form di atas sesuai dengan keinginan pengguna untuk melakukan ujicoba.
  3. Klik tombol “Cetak” untuk mendapatkan dokumen PDF. Jika berhasil, maka dokumen PDF yang dihasilkan tampak sebagai berikut.
    BisaKomputer - TCPDF

Penutup

Library TCPDF sangat bermanfaat untuk berbagai macam keperluan. TCPDF mempunyai dokumentasi yang lengkap disertai dengan contoh-contoh kasus yang dapat dilihat pada tautan ini (http://www.tcpdf.org/examples.php). Pengembang situsweb dapat menggunakan library tersebut untuk membangun template dokumen PDF yang dapat dibangkitkan melalui kombinasi HTML, PHP, Javascript, atau bahkan database MySQL. Selamat bermain-main dengan TCPDF.

Tag: , ,

6 Comments

Leave Comment
  1. sari says:

    pak kok tidak bisa ya saat cetak
    keterangan error: Warning: require_once(tcpdf_include.php): failed to open stream: No such file or directory in C:\xampp\htdocs\voucher\tcpdf_6_0_086\cetak.php on line 9

    Fatal error: require_once(): Failed opening required ‘tcpdf_include.php’ (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs\voucher\tcpdf_6_0_086\cetak.php on line 9

  2. Rusman says:

    Thanks Pak, berguna banget.

  3. lirik yes says:

    mantap ni gan, izin copy yach gan, sangat bermanfaat buat ane nich

  4. Thanks pak, tutorialnya berguna banget.
    Tapi kalau kita mau mengirimkan file hasil pdf otomatis via email bisa nggak?

  5. nurany says:

    maaf jika membuat form isian dengan keluaran cetak (kertas sudah ada isiannya bagaimana ? contoh
    nama (sudah di cetak offsite) : nurany (isi dalam form php)
    yang mencetak sesuai dengan user yang masuk. dan tanggal cetak sesuai dengan tanggal input

  6. wibi says:

    Tapi kalau kita mau mengirimkan file hasil pdf otomatis via email bisa nggak?

Write Comment

Your email will not be published. The marked label is required.