Seperti yang diketahui, PHPMaker menggunakan extension DOMPDF untuk mengekspor data dari halaman List dan View ke file PDF. Konten data di kedua halaman ini tentu saja layout-nya standar, karena bawaan hasil generate PHPMaker.
Pada halaman List, data dikemas dalam bentuk table, di mana setiap field disusun secara horizontal. Sedangkan pada halaman View, data dikemas secara vertical dalam dua kolom; judul atau label field di sebelah kiri, dan datanya di sebelah kanan.
Kadang-kadang, kita sebagai Web Developer dituntut untuk dapat menghasilkan fitur yang bisa mengekspor data dan layout yang kostum pula ke dalam file PDF. Karena data dan layout bersifat kostum, atau tidak standar dari bawaan PHPMaker, maka kita bisa mengoptimalkan fitur Custom Files. Masih ingat dengan fitur itu di PHPMaker, kan?
Karena adanya keterbatasan pada extension DOMPDF di atas, maka konten atau data pada Custom Files tadi akan kita ekspor ke file PDF menggunakan library FPDF. FPDF adalah sebuah class PHP yang dapat menghasilkan file PDF dengan menggunakan murni kode PHP. Huruf F pada FPDF merupakan singkatan dari Free, yang artinya Anda dapat menggunakannya untuk keperluan apapun dan memodifikasinya bebas sesuai kebutuhan Anda.
Beruntunglah Anda yang membangun Aplikasi Web dengan menggunakan PHPMaker dan Masino Extensions. Mengapa? Karena dengan menggunakan PHPMaker, kita bisa mengoptimalkan fitur Custom Files. Dengan menggunakan Masino Extensions, maka kita tidak perlu lagi men-download library FPDF tadi, karena Masino Extensions sudah menyertakan FPDF di dalamnya.
Berikut ini saya akan menunjukkan kepada Anda sebuah contoh yang paling sederhana untuk mengekspor sebuah tulisan atau kalimat ke file PDF. Konten tulisan ini kita buat melalui fitur Custom Files di PHPMaker.
Pertama, kita harus menambahkan sebuah Custom File baru. Klik kanan pada tulisan Custom Files yang terdapat di panel Database, lalu klik menu Add File.
Kedua, di jendela Custom File berikutnya, masukkan nama file (misalnya) custom1.php di bagian File Name. Di bagian Caption, masukkan judulnya (misalnya) Custom One. Pastikan Anda TIDAK MENCENTANG item Include common files, lalu klik tombol OK untuk menyimpan perubahan tersebut.
Ketiga, klik tab Code (Server Events, Client Scripts and Custom Templates), lalu lompat ke lokasi Custom Templates -> Table-Specific -> Custom File -> Content, lalu copy-kan kode PHP berikut ke dalam editor teks di sebelah kanannya:
<?php require('fpdf/fpdf.php'); ob_end_clean(); $pdf = new FPDF(); // Add first page $pdf->AddPage(); // Set initial x and y position per page $y_axis_initial = 15; $x_axis_initial = 25; // Set Font Name and Size $pdf->SetFont('Arial','',9); // Set Y and X initial position $pdf->SetY($y_axis_initial); $pdf->SetX($x_axis_initial); // Print it out now ... $pdf->Cell(170, 4, "Halo, ini untuk mencoba FPDF di Custom File...", 0, 0, 'L', 0); // left-align, width: 170 $pdf->Output("CustomFile2.pdf", "D"); ?>
Keempat, simpan project PHPMaker Anda, lalu generate ulang semua file script seperti biasa menggunakan PHPMaker.
Setelah itu, jalankan Aplikasi Web dari browser, lalu klik menu Custom One, maka seharusnya sekarang sistem akan mengekspor tulisan Halo, ini untuk mencoba FPDF di Custom File… ke dalam file PDF.
Itu adalah contoh yang paling sederhana. Tentu saja Anda dapat mengembangkannya sesuai kebutuhan. Misalkan, Anda dapat mengambil datanya terlebih dulu dari Database sebelum diekspor ke file PDF, atau melempar variabel POST atau GET dari halaman yang dihasilkan oleh PHPMaker ke Custom File tadi, lalu tangkap nilainya di dalam Custom File.
Anda juga dapat menambahkan table dan border supaya lebih rapi, memformat teks menjadi tebal, mengubah jenis dan ukuran huruf tertentu, membagi ke dalam beberapa halaman di file PDF, dan seterusnya.
Pastikan juga Anda sudah membaca dan mempelajari Manual dan Tutorials dari situs fpdf.org di atas tadi. Saya yakin Anda dapat menghasilkan layout serumit apapun berdasarkan contoh-contoh pada Tutorials dan Manual di situs fpdf.org.
Betapa mudah, cepat, dan menyenangkan sekali, bukan? 🙂
Ichanz mengatakan
Terima kasih banyak pak, sangat membantu utk ‘kick start’ menggunakan fpdf
Masino Sinaga mengatakan
Sama-sama pak.
Rycko mengatakan
Terima Kasih tutorial nya.
Apakah PHPMaker dapat memanfaatkan file Word buatan sendiri sebagai template output pdf?
Masino Sinaga mengatakan
Sama-sama.
PHPMaker belum bisa menggunakan file Word buatan sebagai template output pdf.
Cak Sobri mengatakan
Keren-keren, thanks om 🙂
Masino Sinaga mengatakan
Sama-sama. 🙂
lman mengatakan
Siang pak
Bila di halaman list di buat tombol sendiri bisa tidak pak….contohnya ingin membuat tombol print yang terkoneksi dengan printer dengan klik enter…terima kasih
Masino Sinaga mengatakan
Bisa. Gunakan server event Page_DataRendering. Jangan tanya saya bagaimana kode-nya. Berusahalah sendiri!
lman mengatakan
Sy udah ikuti semua intruksi di atas kok error ya pak….error kolom 4 menunjukan $pdf = new FPDF ();
Masino Sinaga mengatakan
Isi pesan error-nya apa?
alex mengatakan
parse error: syntax error, unexpected ‘$pdf’ (T_variable) in C:\xampp…..
\custome1.php on line 4
on line 4 menunjuk code yg sy kirim pertama
Masino Sinaga mengatakan
Coba hilangkan karakter spasi sebelum karakter kurung buka.
alex mengatakan
trima kasih pak masino
Masino Sinaga mengatakan
Sama-sama.
Chandra Wijaya mengatakan
Salam kenal master Masino. Saya boleh tanya, bagaimana caranya agar pada saat kita mengklik tombol view (tampilkan) pada list tabel, maka halaman View akan terbuka pada tab baru di browser? Terima kasih
Masino Sinaga mengatakan
Salam kenal kembali. Anda bisa menggunakan jQuery di bagian Client Scripts -> Startup Script untuk menambahkan property target=”_blank” ke dalam link a href yang bertalian. Silahkan Google contoh-contoh kode-nya.
riefeen mengatakan
Pak Masino.. saya menggunakan PHPMAKER 2017, barcode bisa tampil tetapi ketika di-export ke PDF tidak tampil, sedangkan ketika saya coba pakai PHPMAKER 11 bisa tampil. Apakah Bapak sudah pernah export barcode ke PDF dengan PHPMAKER 2017. Saya sudah tanya di forum phpmaker tapi belum ada jawaban. Mohon bantuannya . Terima kasih
Masino Sinaga mengatakan
Saya belum pernah export barcode ke PDF dengan PHPMaker.
riefeen mengatakan
Saya sudah coba lewat demo situsnya phpmaker ternyata barcode (qr code) juga tidak tampil pada file hasil export pdf
Masino Sinaga mengatakan
Coba pakai library FPDF.
Nanda mengatakan
Pak Masino, bagaimana ya cara mengambil nilai Paramater dari Advance Search Value di halaman Custom File ?
jadi saya akan buat Halaman Custom File , cuma untuk halaman ini saya akan menampilkan Filter Field Nomor dengan kriteria Pecarian Between.
langkah yang sudah lakukan, yaitu menampilkan Tombol Baru di halaman List => Page Render
kode yang sudah saya buat pada List =>Page Render adalah seperti diatas, namun pada Link Target belum bisa menampilkan Value dari hasil Pencarian Advance Search Value ?
utk halaman asli yg muncul dari hasil pencarian , pada browser adalah seperti ini ;
pada Tombol baru tersebut saya akan mengambil nilai BETWEEN : 57 & 60, namun masih belum muncul Nilai Parameter nya ?
Masino Sinaga mengatakan
Kenapa harus di Page_Render? Kenapa tidak di setiap record saja dibuat link untuk mencetak ke PDF menggunakan server event ListOptions_Rendered?
Nanda mengatakan
maaf Pak, karena kebutuhan nya adalah utk mencetak Laporan/ semacam Laporan Periode (Per tanggal – Between / Per Nomor Transaksi sekian s.d. sekian)
dalam contoh diatas saya coba buat per Nomor dulu.
kalau ga salah jika di setiap Record – ListOptions_Rendered / dia membaca CurrentValue (tiap ID/ Kunci) sementara yang di harapkan membaca dari beberapa Kunci/ ID sesuai dengan kriteria pencarian.
Jadi Alurnya :
1. User buka Halaman List
2. User melakukan Pencarian => Advance Search , Periode / Between :
Nomor sekian s.d. Nomor sekian / Tanggal sekian s.d. Tanggal sekian (dalam contoh diatas saya baru pake yang nomor)
3. Jika Sudah melakukan Pencarian , di halaman List tersebut ada Tombol ‘Cetak Laporan’ dimana akan di arahkan ke Custom_File.php dan di Filter sesuai kriteria pencarian di atas.
(hasil pada Custom File semacam Daftar Tabel yang telah diseleksi)
namun Paramater dari Tombol ‘Cetak Lapran’ tersebut yg masih belum bisa, ini sudah sy coba ganti ganti kode yg lain juga masih belum bisa.
Masino Sinaga mengatakan
Berarti tinggal di-parsing saja variable GET dari URL-nya, lalu tampung ke dalam Custom File tersebut.
Andrea mengatakan
Hi,
How can I do to generate table with DetailOrder with fpdf in dynamic way from query:
Example:
I print a pdf with fpdf. But I have the table with field like Product ,Price, Quantity, Vat, Total. This header table column are already defined. I want print this field directly from query. So, I set query and fpdf create table from here ( so I have only field in pdf table from query).
Thank you,
Andre
Masino Sinaga mengatakan
Please read the manual and some tutorials from fpdf site. Afterwards, implement it via your own Custom Files in your PHPMaker project.
Hope that helps.
Andrea mengatakan
Hi Masino,
Ok. I read Custom File. Now I know how to generate pdf with data from query.
But I set static column table, I would to know if exist a way to build table in fpdf from query (example: the header table and column generate directly from query and not set in static way).
Thank you,
Andrea.
Masino Sinaga mengatakan
Basically, the logic is same with how you get the recordset through a loop. The only different thing is you need to know the SQL how to get the field/column name, since each database usually uses the different syntax. Just Google for it.
Andrea mengatakan
Thanks Masino.
How can I do to hide add button in Master/detail (I want hide add button in OrdersMaster).
Thanks,
Andrea.
Eka Dalas Pangestu mengatakan
Pak bagaimana ya cara eksport pdf padahal exstension dompdf sudah saya aktifkan, tapi tidak bisa eksport dengan pdf
Terima Kasih
Masino Sinaga mengatakan
Klik tab Advanced dari setting Extension yang bertalian, lalu klik Tables, dan pastikan pilihan ExportList sudah diaktifkan juga. Setelah itu generate ulang semua file script lagi seperti biasa.