Rabu, 19 Agustus 2015

Cetak Halaman Web Sekali Klik Tombol, Tanpa Muncul Window Opsi Printer dan Tanpa Mencetak Header dan Footer

The story behind... ada kebutuhan membuat aplikasi berbasis web menggunakan PHP untuk mencetak struk pembelian oleh kasir (struk yang dicetak sama dengan tampilan pada web browser). Kebutuhannya adalah, kasir tinggal "menekan tombol" untuk mencetak struk pembelian. Kenyataannya aplikasi berbasis web menggunakan PHP sulit melakukan hal demikian. Putar otak... aha! pakai bantuan JavaScript. Searching dikit... voila! ketemu perintahnya yaitu : window.print(). Terus kutak-katik program... berhasil... tapi... header dan footer halaman web-nya tercetak terus "tombol"-nya ikut tercetak juga!!! Searching lagi... hmm, dapet... kutak-katik programmnya lagi... tes lagi... berhasil!

Algoritmanya : saat kasir klik "tombol" yang berupa link maka akan menjaankan suatu function yang isinya; a) perintah untuk menghapus "tombol" (link) dan, b) perintah untuk mencetak halaman web. Sedangkan header dan footer disembunyikan dengan menambahkan atribut pada tag <html> (lihat gambar).

Berikut ini gambar source code sederhana agar bisa mencetak halaman web sekali klik, "tombol"-nya (link) tidak ikut tercetak, demikian pula header dan footer tidak ikut tercetak pula. Perhatikan baik-baik baris yang di-highlight warna kuning. Klik gambar untuk memperbesar. WARNING : source code jalan dengan baik di Mozilla Firefox dan belum pernah diuji coba di web browser lainnya.


Semoga bermanfaat

Update : Di bawah ini tambahan CSS pada blok <head> yang katanya berfungsi pada web browser Chrome dan Safari... katanya lho :p coba sendiri aja ya :)
<style media="print" type="text/css">
  @page {
    size: auto;   /* nilai awal ukuran halaman */
    margin: 0mm;  /* mengubah margin printer */
  }

  body {
    background-color:#FFFFFF; 
    margin: 0px;  /* mengubah margin konten */
    padding: 0.25in 0.5in; /* mengubah padding konten */
  }
</style>
Selamat belajar!

Tidak ada komentar: