Mencetak PDF dari Browser
Dalam sebuah project penulis mendapatkan sebuah task untuk melakukan export PDF untuk suatu data. Teknik yang saya gunakan pada awalnya menggunakan laravel-dompdf, it works well in local machine sampai di upload ke shared hosting.
Booom
Setelah berjam-jam tidak menemukan solusi, maka solusi jitu adalah dengan menggunakan fungsi print bawaan tiap-tiap browser. Meskipun hasilnya sedikit berbeda, tapi kebetulan tidak terlalu jauh beda.
Triknya sederhana, buka tab baru yang menampilkan konten yang ingin di-pdf-kan, lalu panggil kode berikut:
document.addEventListener("DOMContentLoaded", function(event) {
setTimeout(function() {
window.print();
}, 500);
window.onfocus = function() {
setTimeout(function() {
window.close();
}, 500);
}
});
Konsepnya sederhana, setelah halaman HTML selesai dimuat, tunggu 500 milidetik, lalu panggil dialog print yang dimiliki browser untuk mengunduh PDF, kemudian tutup tab.
Hasil PDF nya memang tidak ebgitu bagus karena hanya mengikuti apa adanya dari browser, tapi jadi solusi jitu karena saat ini hanya menggunakan shared hosting yang sedikit merepotkan dalam menggunakan Laravel.