Cara membuat file PDF di PHP menggunakan library FPDF
Sekarang ini, ketika segala sesuatu mulai terhubung ke internet. Banyak orang yang lebih memilih menggunakan aplikasi berbasis web (biasa disebut webapp) daripada aplikasi berbasis desktop dengan berbagai alasan, salah satunya adalah mobilitas dan fleksibilitas. Dengan web app, anda bisa mengakses aplikasi anda kapan saja dimana saja.Web app juga bisa lebih powerful daripada aplikasi stand alone. Dikarenakan pemrosesan di lakukan di sisi server, bahkan perangkat dengan kemampuan komputasi rendah dapat mengakses informasi yang menggunakan perhitungan kompleks.
Namun webapp juga memiliki beberapa kelemahan. salah satunya adalah ketika berurusan dengan dokumen fisik.
Generasi PDF di PHP dengan FPDF
PDF memberikan kemampuan web app untuk menyajikan data yang dapat di cetak dengan tata letak yang tetap. Seperti mencetak dokumen, struk, kwitansi, tagihan, laporan dan lain sebagainya.Pada tutorial ini, saya akan menggunakan library FPDF. FPDF adalah sebuah library PHP untuk membuat dan membangun file pdf dengan memanipulasi isi dokumen pdf melalui program. Dokumentasinya bisa anda baca disini.
Berikut adalah tutorial dasar penggunaan library FPDF untuk membuat dokumen pdf di php.
Membangun struktur PDF di PHP
Pertama, download library fpdf disini.Lalu ekstrak isinya di folder htdocs anda.
Lalu buat sebuah file php baru dan isikan kode berikut. File php ini nantinya yang akan menjadi generator dokumen pdf.
Pada contoh ini saya akan menggunakan settingan kertas ukuran A4, portrait, dengan satuan milimeter.
<?php //call the FPDF library require('fpdf17/fpdf.php'); //A4 width : 219mm //default margin : 10mm each side //writable horizontal : 219-(10*2)=189mm //create pdf object $pdf = new FPDF('P','mm','A4'); ?>
Selanjutnya, buat sebuah halaman kosong dengan perintah $pdf->AddPage(); . Lalu output haslinya dengan perintah $pdf->Output();
<?php //call the FPDF library require('fpdf17/fpdf.php'); //A4 width : 219mm //default margin : 10mm each side //writable horizontal : 219-(10*2)=189mm //create pdf object $pdf = new FPDF('P','mm','A4'); //add new page $pdf->AddPage(); //output the result $pdf->Output(); ?>
Buka browser anda, akses file php yang anda buat tadi. Maka anda akan mendapatkan tampilan pdf seperti ini.
Selamat, anda telah membuat sebuah dokumen pdf. Sekarang anda hanya tinggal mengisinya dengan konten.
Menambahkan konten pada pdf dengan cells
Konten teks di pdf ditulis dengan menggunakan cells (bayangkan cell sebagai sebuah kotak textbox). Anda bisa mengisi teks dengan cell dan tiap-tiap cell bisa memiliki properti masing-masing seperti lebar, tinggi, garis tepi, dll.Cell ditumpuk secara horizontal dari kiri ke kanan dan satu baris berakhir dengan cell yang memiliki property new line atau dengan memanggil perintah $pdf->Ln(); ibarat menekan tombol enter ketika mengetik.
FPDF cell memiliki parameter berikut:
Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])
w dan h adalah untuk lebar dan tinggi.
txt untuk konten teks nya.
border untuk mengatur border, bisa berupa angka 1 untuk semua border, atau 0 untuk tanpa border. Bisa juga kombinasi antara huruf L,T,R,B untuk left, top, right, atau bottom.
ln adalah untuk line ending (new line), angka 1 artinya baris berakhir pada cell ini (enter).
align adalah perataan teks kiri/tengah/kanan (L,C,R). Tidak ada justify
untuk fill and link, kita belum membutuhkannya kali ini. Silahkan baca dokumentasinya untuk lebih jelasnya.
Mengatur font di pdf
Sebelum menambahkan sesuatu di file pdf kita, alangkah baiknya kita mengatur font yang akan kita gunakan terlebih dahulu.Untuk mengubah setingan font, kita bisa menggunakan perintah $pdf->SetFont(); berikut adalah petunjuknya.
SetFont(string family [, string style [, float size]])
family adalah jenis font yang digunakan ( 'Arial','Courier','Times'). Harus berupa font default atau font yang sudah didefinisikan dengan perintah AddFont (akan saya jelaskan di tutorial lain). Sementara ini kita pakai Arial saja.
style adalah kombinasi dari B,I,U (bold, italic, underlined) atau string kosong.
size adalah ukuran font dalam satuan point (sama seperti di ms word).
Demikian adalah perintah dasar yang kita butuhkan untuk membuat sebuah dokumen pdf. Sekarang mari kita coba membuat sebuah dokumen pdf.
Membuat nota tagihan (invoice) pdf di php
Berikut adalah cuplikan kode untuk invoice di pdf. Copas kode berikut diantara setelah perintah AddPage dan sebelum perintah Output.//set font jadi arial, bold, 14pt $pdf->SetFont('Arial','B',14); //Cell(width , height , text , border , end line , [align] ) $pdf->Cell(130 ,5,'GEMUL APPLIANCES.CO',0,0); $pdf->Cell(59 ,5,'INVOICE',0,1);//end of line //set font jadi arial, regular, 12pt $pdf->SetFont('Arial','',12); $pdf->Cell(130 ,5,'[Street Address]',0,0); $pdf->Cell(59 ,5,'',0,1);//end of line $pdf->Cell(130 ,5,'[City, Country, ZIP]',0,0); $pdf->Cell(25 ,5,'Date',0,0); $pdf->Cell(34 ,5,'[dd/mm/yyyy]',0,1);//end of line $pdf->Cell(130 ,5,'Phone [+12345678]',0,0); $pdf->Cell(25 ,5,'Invoice #',0,0); $pdf->Cell(34 ,5,'[1234567]',0,1);//end of line $pdf->Cell(130 ,5,'Fax [+12345678]',0,0); $pdf->Cell(25 ,5,'Customer ID',0,0); $pdf->Cell(34 ,5,'[1234567]',0,1);//end of line //buat dummy cell untuk memberi jarak vertikal $pdf->Cell(189 ,10,'',0,1);//end of line //alamat billing $pdf->Cell(100 ,5,'Bill to',0,1);//end of line //tambah dummy cell di awal untuk indentasi $pdf->Cell(10 ,5,'',0,0); $pdf->Cell(90 ,5,'[Name]',0,1); $pdf->Cell(10 ,5,'',0,0); $pdf->Cell(90 ,5,'[Company Name]',0,1); $pdf->Cell(10 ,5,'',0,0); $pdf->Cell(90 ,5,'[Address]',0,1); $pdf->Cell(10 ,5,'',0,0); $pdf->Cell(90 ,5,'[Phone]',0,1);
//buat dummy cell untuk memberi jarak vertikal $pdf->Cell(189 ,10,'',0,1);//end of line //invoice $pdf->SetFont('Arial','B',12); $pdf->Cell(130 ,5,'Description',1,0); $pdf->Cell(25 ,5,'Taxable',1,0); $pdf->Cell(34 ,5,'Amount',1,1);//end of line $pdf->SetFont('Arial','',12); //Angka diratakan kanan, jadi kita beri property 'R' $pdf->Cell(130 ,5,'UltraCool Fridge',1,0); $pdf->Cell(25 ,5,'-',1,0); $pdf->Cell(34 ,5,'3,250',1,1,'R');//end of line $pdf->Cell(130 ,5,'Supaclean Diswasher',1,0); $pdf->Cell(25 ,5,'-',1,0); $pdf->Cell(34 ,5,'1,200',1,1,'R');//end of line $pdf->Cell(130 ,5,'Something Else',1,0); $pdf->Cell(25 ,5,'-',1,0); $pdf->Cell(34 ,5,'1,000',1,1,'R');//end of line //total $pdf->Cell(130 ,5,'',0,0); $pdf->Cell(25 ,5,'Subtotal',0,0); $pdf->Cell(4 ,5,'$',1,0); $pdf->Cell(30 ,5,'4,450',1,1,'R');//end of line $pdf->Cell(130 ,5,'',0,0); $pdf->Cell(25 ,5,'Taxable',0,0); $pdf->Cell(4 ,5,'$',1,0); $pdf->Cell(30 ,5,'0',1,1,'R');//end of line $pdf->Cell(130 ,5,'',0,0); $pdf->Cell(25 ,5,'Tax Rate',0,0); $pdf->Cell(4 ,5,'$',1,0); $pdf->Cell(30 ,5,'10%',1,1,'R');//end of line $pdf->Cell(130 ,5,'',0,0); $pdf->Cell(25 ,5,'Total Due',0,0); $pdf->Cell(4 ,5,'$',1,0); $pdf->Cell(30 ,5,'4,450',1,1,'R');//end of line
Simpan file php nya, lalu refresh browser. Jika tidak ada kesalahan pengetikan, maka hasilnya akan seperti ini.
Selamat, anda sudah bisa membuat pdf invoice anda sendiri. Sekarang anda tinggal mengotak-atik nya sesuai kebutuhan dan kreatifitas anda untuk membuat kwitansi, laporan, struk, formulir dan dokumen cetak lainnya.
Jika anda masih bingung, silahkan simak tutorial videonya di channel saya disini:
https://www.youtube.com/watch?v=R32LF_pONNY
Link untuk source code nya ada di deskripsi video.
Langganan:
Posting Komentar
(
Atom
)
Tidak ada komentar :
Posting Komentar