Sekitar 5 tahun yang lalu, tepatnya tahun 2016, kita sudah pernah membahas bagaimana mudahnya mengekspor atau menampilkan konten dari Custom Files ke file PDF melalui bantuan FPDF. Buat yang belum tahu, ini artikel yang membahas hal tersebut: Mudahnya Mengekspor Konten Custom File ke File PDF dari PHPMaker dan FPDF.
Sayangnya, kode di artikel tersebut tidak bisa sepenuhnya digunakan di PHPMaker 2021. Penyebabnya karena PHPMaker yang kita gunakan 5 tahun lalu tersebut masih belum menggunakan namespace di PHP. Pada saat itu, versi PHP yang digunakan adalah versi jadul yang belum mendukung pemakaian namespace.
Sama seperti di artikel tadi, maka di tulisan ini, lagi-lagi kita masih tetap mengoptimalkan pemakaian Masino Extensions di project PHPMaker 2021, dimana sudah disertakan library FPDF. Library ini akan di-generate oleh PHPMaker 2021 pada sub-folder plugins/fpdf di sisi Aplikasi Web.
Oke, tanpa berlama-lama lagi… langsung saja ya. Untuk memulai, berikut 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 2021.
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) fpdf_test.php di bagian File Name. Di bagian Caption, masukkan judulnya (misalnya) Test FPDF. Pastikan kali ini Anda mencentang 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 ob_end_clean(); // don't forget this at the beginning require('plugins/fpdf/fpdf.php'); // it is generated by Masino Extensions for PHPMaker 2021 $pdf = new \FPDF(); // we use back slash in order to avoid error, since PHPMaker 2021 uses namespace // 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','',12); // 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 Files pada PHPMaker 2021.", 0, 0, 'L', 0); // left-align, width: 170 ob_end_clean(); // don't forget this before saving the content to pdf file $pdf->Output("fpdf_test.pdf", "D"); // save and download the content to "fpdf_test.pdf" file ?>
Jika kita perhatikan kode yang terdapat di artikel ini lalu kita bandingkan dengan kode yang saya share pada tahun 2016 yang lalu itu, maka hanya ada sedikit saja perbedaannya.
Pertama, kita harus menempatkan kode ob_end_clean(); di awal sebelum kode yang menyertakan library FPDF-nya.
Kedua, untuk memanggil atau menciptakan object FPDF dari class FPDF, maka kita harus menambahkan awalan karakter back slash sebelum FPDF(), yaitu: $pdf = new \FPDF();. Hal ini wajib, karena sejak versi 2020, PHPMaker menggunakan namespace.
Ketiga, sebelum menyimpan konten ke dalam file PDF, kita harus menambahkan kembali kode ob_end_clean();. Jika tidak, maka konten dari Custom Files tadi tidak akan pernah berhasil tersimpan dengan sempurna ke file PDF.
Betapa cepat dan mudahnya bukan? Hanya dengan sedikit perubahan kode itu saja, yang pernah kita buat 5 tahun yang lalu, sekarang di tahun 2021, kode tersebut bisa kita gunakan kembali dari Custom Files di PHPMaker 2021.
Mas saya mau tanya ..
kenapa ya kok template bawaan maker yang saya generate tidak responsive kalo buat menunya dibuat sidebar ?
padahal kalo buat di navbar aman aman saja..apakah ini bug ? atau saya yg salah config ya ?
mohon bantuannya om.
Pakai PHPMaker versi berapa?
PHPmaker 2021 om masino..
PHPMaker 2021 itu lengkapnya yang versi berapa minornya? 2021.0.1, 2021.0.2, 2021.0.3, dst… yang mana?
Saya masih pakai Versi 2021.0.11 mas
Update ke versi 2021.0.12.
Uninstall dulu yang 2021.0.11, lalu install yang 2021.0.12.
Sudah diupdate ke 2021.0.12 masih sama mas..tetep ada kaya scroll bar horizontal karena ga responsive ..padahal kalo top menu aman mas
Yang tidak responsive itu table-nya kah? Kalau iya, coba gunakan extension FixedHeaderTable.
Mantap Pa sudah dibahas lengkap disini pa trima kasih
Sama-sama om John.
{Versi 2021}
Pak, di versi 2021 ini saya kok masih engga bisa untuk memanggil fungsi nya dari “Endroid PHP Qr Code” dari Custom File ya ?
error di pemanggilan fungsi ini :
sedangkan Script selengkapnya seperti ini :
Script diatas sudah berjalan baik di halaman PHP sendiri (tanpa PHP Maker) sedangkan jika dimasukkan ke Custom File muncul error :
ralat yang error diatas dari Library “PHP QrCode”,
sedangkan Fungsi dari Library “PHP Barcode Generator” bisa berfungsi, dengan menambahkan “\” :
Artinya sekarang sudah bisa kan? Tidak ada error lagi?
untuk script yang panjang diatas tetap belum bisa (yang QrCode) , saya sambil cari-cari referensi juga masih belum bisa.
ini masih cari alternatif Library lain untuk QrCode nya,
sementara yang PHP Barcode Generator (Barcode biasa) bisa berjalan normal.
Untuk QRCode, coba pelajari lagi dokumentasinya. Seharusnya bisa.
Pastikan output dari variable yang menghasilkan QRCode tadi bisa diintegrasikan ke dalam variabel yang menghasilkan file PDF.
Contohnya kira-kira seperti ini (saya coba di versi 2020 dan berhasil):