Home » Global, Internet, Programmings, Tips & Tricks

Membuat file PDF dengan PHP.

Author : Izul Cyber Cafe 15 October 2009 1,400 views 11 Comments

pdf-izulKebetulan ada temen yang bertanya cara membuat file PDF dengan PHP, jadi muncul lah ide untuk membuat tulisan ini.

Untuk membuat file PDF dengan PHP saya disini menggunakan Library FPDF, bisa didapatkan secara gratis di sini.

Pada contoh ini saya akan mencoba membuat PDF sesuai dengan apa yang diinput kan oleh user dalam sebuah form.

Langkah 1

Download FPDF, setelah itu extract di hosting anda, atau kalo mau mencoba di server local bisa di letakan di folder htdocs jika menggunakan XAMPP.

Langkah 2

Buat sebuah Form yang berisi (Nama, Subjek, Website, Komentar) save dengan nama form.html.

 
<html>
<head>
<title>Izul Cyber Cafe</title>
</head>
 
<body>
 
<form method="POST" action="pdf.php">
<h1>Izul Cyber Cafe : PDF</h1>
<form>
  <table>
    <tr>
		<td>Nama</td> <td> : <input type="text" name="nama"></td>
	</tr>
    <tr>
		<td>Subjek</td> <td> : <input type="text" name="subjek"></td>
	</tr>
    <tr>
		<td>Website</td> <td> : <input type="text" name="website"></td>
	</tr>
    <tr>
		<td>Pesan/Komentar</td> <td> : <textarea name="komentar" cols="35" rows="10"></textarea></td>
	</tr>
    <tr>
		<td colspan="2"><input type="submit" name="submit" value="Submit"><input type="reset" name="reset" value="Reset"></td>
	</tr>
  </table>
</form>	
</body>
</html>

Langkah 3

Lalu buat file php untuk memproses data yang di input agar menjadi PDF dengan nama pdf.php

<?php
if (!empty($_POST['nama']) || !empty($_POST['subjek']) || !empty($_POST['website']) || !empty($_POST['komentar'])) {
	$nama=$_POST['nama'];
	$subjek=$_POST['subjek'];
	$website=$_POST['website'];
	$komentar=$_POST['komentar'];
} else {
	echo "Data yang anda masukan belum lengkap!";
	return 0;
}
 
define('FPDF_FONTPATH','fpdf/font/');
require('fpdf/fpdf.php');
 
class PDF extends FPDF {
function Header() {
	$this->Image('logo.jpg',1.1,1.05,2.1);
	$this->SetFont('Arial','B',20);
	$this->Cell(19,1,'Data Komentar',1,0,'C');
	$this->Ln();
}
 
function Footer() {
	$this->SetY(-1.5);
	$this->SetFont('Arial','I',8);
	$this->Cell(0,1,'Halaman '.$this->PageNo().'/{nb}',0,0,'C');
} 
}
 
$pdf=new PDF('P','cm','A4');
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','B',24);
$pdf->SetTextColor(220,50,50);
$pdf->Ln();
$pdf->MultiCell(0,2,$subjek,0,'C');
$pdf->SetFont('Arial','B',12);
$pdf->SetTextColor(0,0,0);
$pdf->SetX(8.2);
$pdf->Write(1,'Oleh: ');
$pdf->SetFont('Arial','BIU',12);
$pdf->Write(1,$nama,$website);
$pdf->SetFont('Arial','B',12);
$pdf->Ln(2);
$pdf->MultiCell(0,1,$komentar);
$pdf->Output();
?>

Langkah 4

Taruh sebuah image dengan format png dengan nama logo.png, anda bisa mengubah nama file atau jenis file gambar dengan yang lain dengan merubah file pdf.php pada $this->Image(‘logo.jpg’,1.1,1.05,2.1); di HEADER

Langkah 5

Sekarang coba jalan kan file form.html, maka jika tombol submit di tekan akan menampilkan message box untuk mendownload file pdf.

Langkah 6

Selesai…..

Keterangan pada file PDF.php:


Melakukan pengecekan apakah data sudah diinput semua.

if (!empty($_POST['nama']) || !empty($_POST['subjek']) || !empty($_POST['website']) || !empty($_POST['komentar'])) {
 
$nama=$_POST['nama'];
 
$subjek=$_POST['subjek'];
 
$website=$_POST['website'];
 
$komentar=$_POST['komentar'];
 
} else {
 
echo "Data yang anda masukan belum lengkap!";
 
return 0;
 
}


Membuat Header

function Header() {
	$this->Image('logo.jpg',1.1,1.05,2.1);
	$this->SetFont('Arial','B',20);
	$this->Cell(19,1,'Data Komentar',1,0,'C');
	$this->Ln();
}

Yaitu untuk membuat tampilan header.

$this->Image(‘logo.jpg’,1.1,1.05,2.1); untuk meletakan gambar berada di  1,1 cm (X) dan 1.05 cm (Y) dan lebar gambar 2.1 cm.

$this->SetFont(‘Arial’,'B’,20); Untuk menentukan jenis Font, atribut(B=Tebal, I=Miring, U=Garis Bawah ) serta ukuran font.

$this->Cell(19,1,’Data Komentar’,1,0,’C'); untuk mecetak “Data Komentar” pada posisi di tengan ( C ), dan ketebalan garis(border=1).

$this->Ln(); untuk pindah baris.


Membuat Footer

 function Footer() {
	$this->SetY(-1.5);
	$this->SetFont('Arial','I',8);
	$this->Cell(0,1,'Halaman '.$this->PageNo().'/{nb}',0,0,'C');
}

Keterangan :

$this->Cell(0,1,’Halaman ‘.$this->PageNo().’/{nb}’,0,0,’C'); Untuk membuat halaman, halaman akan tercetak akibat penulisan {nb}.

Mencetak Isi dokumen.

$pdf=new PDF('P','cm','A4');  Untuk mencetak file dengan format kertas A4, bisa diganti Letter.
$pdf->Open(); 
$pdf->AliasNbPages(); Untuk memanggil fungsi pencetakan halaman.
$pdf->AddPage();
$pdf->SetFont('Arial','B',24); 
$pdf->SetTextColor(220,50,50); Untuk mencetak Warna huruf dengan, bisa contek di photoshop untuk kode warna nya.
$pdf->Ln(); untuk pindah baris
$pdf->MultiCell(0,2,$subjek,0,'C');  Untuk mencetak teks yang lebih dari 1 baris.
$pdf->SetFont('Arial','B',12);  Untuk pengaturan Font ( Arial, Bold, ukuran 12 )
$pdf->SetTextColor(0,0,0); Merubah warna teks menjadi hitam (0,0,0 )
$pdf->SetX(8.2); Menentukan 
$pdf->Write(1,'Oleh: ');
$pdf->SetFont('Arial','BIU',12);
$pdf->Write(1,$nama,$website); Untuk mencetak variable nama disertai link sesuai inputan
$pdf->SetFont('Arial','B',12);
$pdf->Ln(1);
$pdf->MultiCell(0,1,$komentar); Untuk mencetak Komentar.
$pdf->Output(‘data.pdf’,true);

———————————————

DEMO


DOWNLOAD



Jika ada tambahan atau pertanyaan silahkan tulis komentar……..

Ref :

  1. http://www.fpdf.org/en/tutorial/index.php
  2. http://www.fpdf.org/en/doc/index.php

11 Comments »

  • vachzar said:

    hehehe

    manteb zul

    dulu pernah nemu cuman lupa….
    thanks, lagi butuh soalnya..

  • lady said:

    nice posting..

  • darkfarmer said:

    wuih,,, master izul beraksi lg… wew…. :D

  • Cristopher said:

    wah ini yang saya butuhkan,,makaci yaa

  • Elextra n Jero said:

    em,,,boleh ni dicoba,,
    makaci yaa

  • Middbay said:

    wow,,,makaci infonya mas

  • imam pradana said:

    mantab scriptnya… coba dulu :)

  • one said:

    matur nuwun yee.. maju terus indonesia dengan ilmu

  • Agus Setiawan said:

    Wew.. Keren Banget Postingannya.. Kebetulah neh.. gw lagi ada tugas buat begituan… akhirnya ketemu juga.. Hehehehe..

    Thanks :D

  • kartaga said:

    Maksih atas sharing ilmunya, coba dulu ahhhhh

  • ariana said:

    trims tutorialnya.. coba duluuuuu

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.