Pada pembahasan artikel yang lalu, kita pernah membahas cara pembuatan laporan PDF menggunakan PHP memanfaatkan library FPDF. Namun, tahukah Anda laporan dengan memanfaatkan FPDF ini memliki banyak kelemahan. Salah satu contohnya adalah apabila terdapat sebuah konten yang melewati batas garis dari kolom yang diijinkan. Bingung?? Mari perhatikan contoh kode berikut ini :
define('FPDF_FONTPATH', 'fpdf/font/');
require('fpdf/fpdf.php');
$pdf=new FPDF('P','cm',"Legal");
$pdf->Open();
$pdf->AddPage();
$pdf->AliasNbPages();
$pdf->SetMargins(1,1,1);
$pdf->SetFont('times','B',12);
$pdf->Cell(0,0.9,'Laporan Barang',0,0,'C');
$pdf->Ln();
$tgl=date('Y-m-d');
$pdf->SetFont('times','B',8);
$pdf->SetFont('times','B',10);
$pdf->Cell(1,0.6,"NO",'LTR',0,'C');
$pdf->Cell(8,0.6,"NAMA",'LTR',0,'L');
$pdf->Cell(1.8,0.6,"SATUAN",'LTR',0,'C');
$pdf->Cell(2.1,0.6,"STOK",'LTR',0,'C');
$pdf->Ln();
$pdf->SetFont('times','',10);
$pdf->Cell(1,0.6,"1",'LTR',0,'C');
$pdf->Cell(8,0.6,"Buku Tulis Matematika Kualitas ABCD Kiki 80 gram 1 Lusin ",'LTR',0,'L');
$pdf->Cell(1.8,0.6,"Lusin",'LTR',0,'C');
$pdf->Cell(2.1,0.6,"100",'LTR',0,'C');
$pdf->Output();
?>
Kode diatas apabila dijalankan akan terlihat seperti gambar dibawah ini :
Pada gambar diatas, kita dapat melihat isi field nama melewati batas garis yang diperbolehkan dan menimpa field yang ada disebelahnya. Hal ini tentu saja menjadi kendala bagi programmer karena akan kesulitanmenentukan pangjang ideal dari suatu field. Memang FPDF memiliki fungsi Multicell, namun tahukah Anda??, fungsi Multicell ini secara otomatis akan melakukan enter (Ln() dalam bahasa FPDF) . menuju baris selanjutnya pada saat fungsi ini dipanggil. Hal ini juga akan menjadi kendala. Salah satu pemecahan yang mungkin dilakukan oleh para master PHP adalah dengan menambahka sebuah library tambahan yang bernama mc_table.php.
define('FPDF_FONTPATH', 'fpdf/font/');
require('mc_table.php');
$pdf=new PDF_MC_Table('P','cm',"Legal");
$pdf->Open();
$pdf->AddPage();
$pdf->AliasNbPages();
$pdf->SetMargins(1,1,1);
$pdf->SetFont('times','B',12);
$pdf->Cell(0,0.9,'Laporan Barang',0,0,'C');
$pdf->Ln();
$tgl=date('Y-m-d');
$pdf->SetFont('times','B',8);
$pdf->SetFont('times','B',10);
$pdf->SetWidths(array(1, 8, 1.8, 2.1));
$pdf->SetHeight(0.1);
$pdf->Row(array("NO", "NAMA", "SATUAN", "STOK"));
$pdf->SetFont('times','',10);
$pdf->Row(array("1", "Buku Tulis Matematika Kualitas ABCD Kiki 80 gram 1 Lusin ", "Lusin", "100"));
$pdf->Output();
?>
Pada kode diatas dapat dilihat bahwa kita tidak lagi menggunakan library FPDF standard. Melainkan menggunakan library mc_table.php. Library ini memiliki kode yang hamper sama dengan FPDF, yang membedakannya adalah pada library ini kita perlu menentukan lebar dan tinggi setiap field dengan menggunakan SetWidths dan SetHeight. Selain itu kita juga tidak lagi menggunakan fungsi Cell untuk menampilkan table, melainkan kita menggunakan fungsi Row.
klo pake koneksi database gmn scipt nya kakak???
Skripnya sama aja..
cuma di looping aja dibagian isinya dex..
:)
Makash tutor nya Bang, BTW ada gak link untuk donwload library tambahannya?
makasih
Terima kasih atas pertanyaanya,
dibagian akhir dari artikel ini ada koq penulis sertakan sourcecodenya beserta file librari pendukungnya. :)
maaf mas kok $pdf->SetFillColor(128, 128, 128); kga mau ya??
heheh
maaf kk sebelumnya
mau tanya kok $pdf->SetFillColor(128, 128, 128); kga mau ya
hehehe
Maaf baru terbaca hehe..
harud dibuat menjadi ini dahu,u pada librari mc_tablenya
$pdf->cell(30,10," Cell 2 ",1,0,'',true);
Tambahkan tulisan true pada bagian belakangnya,, :)
mas ko di bagian kepada, nama, alamat misal ditambah seperti telephone ada garis ya? cara benerin gimana terima kasih
mmm.. maksudna gimana ya ?? bisa kirim gambarnya supaya lebih jelas??
jika ingin seperti ini, gmana caranya :
____________________________________
| No | Nama | Anak | Ket |
-----------------------------------
| 1 | Asep | 1. Hedva |anak kesatu
| | | 2. Irna |anak kedua
-----------------------------------
| 2 | Andi | 1. Chaca |anak kesatu
| | | 2. Aira |anak kedua
| | | 3. Riska |anak ketiga
-----------------------------------
tolong gan...
kalau setiap row punya satu record image gimana mas ? trimakasih
kalau setiap row terdapat recor image gimana mas ? terima kasih
nice share
terima kasih atas post nya, sangat membantu saya, sudah dicari-cari berbagai method, ini yang tepat sasaran, gampang, rapi, dan sederhana
nice artikel gan... ane sudah coba dan berhasil.. tetapi jarak antar baris pada tabelnya kok kejauhan,, gimana cara mengaturnya? thanks
Cara mengatur tinggi dari baris na mas tinggal buka file mc_table.php.
Kemudian mas edit variable height na..
:)