Generating document using TCPDF

Posted by : Linda Hermawati di 1:17 AM TCPDF adalah sebuah software open source yang di gunakan untuk generate dokumen ke dalam bentuk PDF dari PHP. yang gw tau, TCPDF ini tersedia untuk PHP4 dan PHP5. well, g terlalu sulit jg bikin nya, karena dibantu dengan dokumentasi yang lengkap kap kap. selain bisa menggunakan cell, tcpdf juga mendukung converting dari HTML, dengan catatan, harus TELITI, jika kurang tutup aja, dia g akan muncul, alias blank





// yang wajib di include
require_once('../config/lang/eng.php');
require_once('../tcpdf.php');

/************************** memulai membuat dokumen pdf *****************************/
// kita mulai bahas satu persatu
// PDF_PAGE_ORIENTATION => adalah orientasi kertas yang dipilih, jika ditulis "PDF_PAGE_ORIENTATION" ini defaultnya, kertas nya jadinya akan portrait (berdiri). bisa juga dalam bentuk inisialisasi huruf : 'L' -> landscape dan 'P' -> untuk portrait
// PDF_UNIT => satuan pengukur. nilainya dapat berupa : 'mm' =>milimeter , 'cm' => centimeter, 'in' => inchi dan 'pt'=> point. default nya adalah 'mm'
//PDF_PAGE_FORMAT => adalah jenis kertas yang digunakan, dari letter, legal, A4 dan lain2
//true => maksudnya adalah text yang akan di generate ke dalam bentuk PDF ini adalah UNICODE (true => benar)
//UTF-8 => encoding , default : UTF-8
// false => discache (default false) => jika kondisi true maka akan mengurangi penggunaan memori RAM oleh caching data sementara filesystem (lebih lambat).
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
/************************** End Of memulai membuat dokumen pdf **************************/



/******************************* Setting Informasi Dokumen ***********************************/
// digunakan untuk mendefinisikan pembuat dokumen
$pdf->SetCreator('TCPDF TEST BY NDA'); // si pembuat dokumen
$pdf->SetAuthor('Linda Hermawati'); // author
$pdf->SetTitle('Terestestestestes by nda'); // definisikan judul dokumen
$pdf->SetSubject('Contoh simple penggunaan TCPDF'); // definisikan subject dokumen
$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); // mengasosiasikan keyword, contoh keyword1, keyword2, dst dst
/****************************** End Of Setting Informasi Dokumen ************************/


/******************************* Set Data Header ****************************************/
//PDF_HEADER_LOGO => logo untuk header , jika diberi default "PDF_HEADER_LOGO" , mka logo yang muncul ada logo TCPDF
//PDF_HEADER_LOGO_WIDTH => panjang logo dengan satuan 'mm' (milimeter)
//PDF_HEADER_TITLE => setting judul dari header dokumen
//PDF_HEADER_STRING => string untuk dokumen header
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'Add Test TCPDF by Nda', 'ini nda lho...ini nda...');
/*************************** End Of Set Data Header **********************************/


/********************* Setting Font untuk Header dan Footer *******************************/
// PDF_FONT_NAME_MAIN => jenis font nya
// PDF_FONT_SIZE_MAIN => ukuran huruf
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
/************************* End Of Setting Font untuk Header dan Footer ***********************/


// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);


/******************************** Setting Margin *******************************/
//PDF_MARGIN_LEFT => margin kiri (satuan mm)
//DF_MARGIN_TOP => margin atas (satuan mm)
// PDF_MARGIN_RIGHT => margin kanan (satuan mm)
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); // setting margin header
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // setting margin footer
/****************************** End Of Setting Margin **************************************/


/***************************** Setting Auto Page Break **********************************/
//Mengaktifkan atau menonaktifkan modus memecah halaman otomatis. Bila true, parameter kedua adalah jarak dari bagian bawah halaman. Secara standar, modus dan margin adalah 2 cm.
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
/******************************** End Of Setting Auto Page Break ***************************/



/***************************** Menentukan Jenis dan ukuran Huruf **************************/
// timses => jenis huruf
//BI => style nya, default untuk Bold dan Italic, ada juga : U untuk garis bawah dan D
// 16 => adalah ukuran huruf satuan nya adalah point
$pdf->SetFont('times', 'BI', 16);
/********************** End Of Menentukan Jenis dan ukuran Huruf *****************************/


/***************************** Menambah Halaman Baru *******************************/
//Menambahkan halaman baru pada dokumen. Jika halaman yang sudah ada, yang Footer () Metode ini dipanggil pertama untuk keluaran footer (jika diaktifkan). Kemudian halaman yang ditambahkan, posisi saat ini diset ke sudut kiri atas sesuai dengan margin kiri dan atas (atau bagian kanan jika dalam modus RTL), dan Header () dipanggil untuk menampilkan header (jika diaktifkan).
$pdf->AddPage();
/************************************ End Of Menambah Halaman Baru *************************/



/****************************** Ni dia bagian "BODY" nya *************************************/

// print a line using Cell()
/*
penjelasan :
param 1 :
0 => lebar dari cell tersebut, jika diberi nilai 0 maka akan memanjang sampai dengan margin kanan
12=> tinggi dari cell tersebut
'Add Test By nda menggunakan cell' => data yang akan ditampilkan
1 => garis tepi default : 0 untuk tanpa garis tepi, 1 untuk memberkan bingkai (garis tepi) pada cell
1 => Menunjukkan di mana posisi saat ini harus pergi setelah panggilan .
C => text align. default : C untuk center (rata tengah), L untuk left (rata Kiri), R untuk right (rata kanan) dan J untuk Justify (rata kanan kiri)

*/
$pdf->Cell(0, 12, 'Add Test By nda menggunakan cell', 1, 1, 'C');


//baris baru
$pdf->Ln();
/****************************************Generate dari bahasa HTML***************************/

$html = '

Justnda

';

/*
dukungan untuk men-generate beberapa format HTML (dukungan terbatas).
parameternya berupa :
- $html : string html yang akan di generate
- true : jika bernilai "true", maka akan ada baris baru setelah text
- 0 : Menunjukkan jika latar belakang harus dicat (true) atau transparan (false).
- true : jika bernilai "true" maka reset tinggi cell terakhir
- 0 : jika benar menambahkan cMargin default ruang untuk masing-masing write (default false).
- C : text align. default : C untuk rata tengah, R untuk rata Kanan, L untuk rata Kiri dan J untuk rata Kanan dan kiri

*/
$pdf->writeHTML($html, true, 0, true, 0,'C');



/************************** menggunakan multicell ******************************************/
/* membuat gaya / style untuk garis border
parameter :
- width : menentukan ketebalan garis
- cap : Type of cap to put on the line. Possible values are: butt, round, square. The difference between "square" and "butt" is that "square" projects a flat end past the end of the line.
- join : Type of join. Possible values are: miter, round, bevel.
- dash : pola strip (-). jika di isi 0, maka tidak ada jarak antara (-) satu dengan lainnya, jadi terlihat seperti garis biasa, tapi jika diisi 1 atau 2, maka akan ada jarak antara (-) satu dengan yang lainnya (make sure, please try :) )
- color : menentukan warna garis (dalam bentuk rgb)
*/
$pdf->SetLineStyle(array('width' => 0.3, 'cap' => 'round', 'join' => 'miter', 'dash' => 2, 'color' => array(0, 0, 0)));
/*
menentukan warna isi cell (dalam bentuk rgb)
*/
$pdf->SetFillColor(125,250,111);
/*
menentukan warna text
*/
$pdf->SetTextColor(255,255,0);
/*
Metode ini memungkinkan pencetakan teks dengan jeda baris.
parameternya :
- 80 :lebar dari cell tersebut, jika diberi nilai 0 maka akan memanjang sampai dengan margin kanan
- 0.3 : tinggi minimal cell
- 'Nda Pake Multicell' : text yang akan ditampilkan
- BT : Garis Tepi : B untuk bottom (bawah), T untuk Top (atas), L untuk left (kiri) dan R untuk right (kanan)
- C : text align . default : C untuk rata tengah, L untuk rata kiri, R untuk rata Kanan dan J untuk rata Kanan dan Kiri
- 1 : Menunjukkan jika latar belakang sel harus dicat (1) atau transparan (0). Nilai default: 0.
*/
$pdf->MultiCell(80, 0.3, 'Nda Pake Multicell', 'BT', 'C', 1);



/***************************** End Of Ni dia bagian "BODY" nya *****************************/



/********************************** Final Step, men-generate **************************/
//Kirim dokumen ke tujuan tertentu: string, file lokal atau browser.
// sampleNda.pdf => nama filenya
//I => ini adalah output yang dihasilkan, mau berupa apa, bagaimana, dengan pilihan sebagai berikut :
/* * I: inline mengirim file ke browser (default). Plug-in ini digunakan jika tersedia. Nama yang diberikan oleh Nama ini digunakan ketika seseorang memilih "Save as" pada link pilihan menghasilkan PDF.
* D: kirim ke gaya browser dan men-download file dengan nama yang diberikan nama.
* F: simpan ke file lokal dengan nama yang diberikan nama.
* S: mengembalikan dokumen sebagai string. nama ini diabaikan.
*/
$pdf->Output('sampleNda.pdf', 'I');

/******************************* End OF Final Step ****************************/

?>

0 komentar:

Post a Comment