- menggunakan javascript print window,
- mencetak teks dalam bentuk PDF yang dimuat dalam browser lalu diprint.
Nah, sebenarnya PHP datang dengan banyak sekali ekstensi yang sangat berguna. Salah satu yang tidak populer dan dapat memecahkan masalah kita tadi adalah php_printer. php_printer adalah ekstensi PHP yang mampu meneruskan teks dari PHP untuk dapat langsung dicetak dengan printer. Solusi ini saya pakai untuk beberapa aplikasi buatan saya seperti PSBOnline Pro, SisfoSekolah Pro, SisKoperasi dll (lihat http://code.emka.web.id).
Awalnya memang cukup sulit untuk menemukan ekstensi ini, tapi sebenarnya anda cukup mudah mendapatkannya dari: http://downloads.php.net/pierre/ dan cari file php_printer-xxx yang sesuai dengan versi PHP anda. Saat tulisan ini terbit, php_printer baru tersedia untuk versi PHP 5.3, untuk versi 5.4 belum diketahui.
Instalasi Ekstensi php_printer
Untuk dapat mengikuti tutorial ini, silakan instalasi dulu ekstensi php_printer. Saya menggunakan XAMPP dengan PHP 5.3 TS VC6.
1. Unduh file php_printer-xxx-ts-vc6.zip
2. ekstrak file php_printer ke folder C:\xampp\php\ext
3. Buka file php.ini di C:\xampp\php\
4. Tambahkan baris
[sourcecode]
extension=php_printer.dll
[/sourcecode]
- Jalankan apache atau load ulang PHP anda.
Bila perlu cek dengan membuat file phpinfo() dan cari ekstensi printer apakah sudah dimuat. Contoh, pada sistem lokal saya:
Mencetak Teks ke Printer dengan PHP
Contoh skrip:
[sourcecode language="php"]
/* contoh text */
$lipsum = 'Eh, ini adalah testing aplikasi cetak teks langsung ke printer dengan PHP lhoo....';
/* tulis dan buka koneksi ke printer */
$printer = printer_open("Lexmark X850e XL V");
/* write the text to the print job */
printer_write($printer, $lipsum);
/* close the connection */
printer_close($printer); ?-->
[/sourcecode]
Nama printer dapat anda peroleh dengan melihat daftar printer dan scanner di Devices and Printers (Control Panel). Begitu script ini dieksekusi, PHP akan mengirim teks tersebut untuk langsung dicetak ke printer.
Alternatif Khusus Printer POS/Point of Sales/Printer Kasir
Alternatifnya bisa menggunakan library ESCPOS-PHP di Github -> http://github.com/mike42/escpos-php. Tutorialnya bisa disaksikan di Yutub berikut:
bagaimana cara mencetak table dari database, yg lbih mudah dan efektif, jika menggunakan fpdf memiliki kelemahan jika teks dlam table tersebut sangat panjang, tapi jika pake ektensi diatas,, bagaimana jika multi user yg berbeda printer.. mohon pencerahan
ReplyDeletebagaimana cara mencetak table dari database, yg lbih mudah dan efektif, jika menggunakan fpdf memiliki kelemahan jika teks dlam table tersebut sangat panjang, tapi jika pake ektensi diatas,, bagaimana jika multi user yg berbeda printer.. apakah ada solusi lain? mohon pencerahan
ReplyDelete1. tentu tiap solusi tidak bisa sempurna disetiap kasus mas sanwan, untuk FPDF kita memang harus menambahkan algoritma tambahan untuk mengatur sebisa mungkin lebar cell bisa mengakomodasi panjang karakter yang ada, semoga FPDF bisa menambahkan fitur ini secara native pada versi 2.0 nanti.
ReplyDelete2. untuk pengguna multiuser, kita bisa manfaatkan program diluar PHP yang melakukan deteksi dan pengumpulan daftar printer apa saja yang ada di komputer user.
terima kasih...
ReplyDeletegan jika ingin cetak ke jaringan gmn??
ReplyDeletesy udah coba $handle = printer_open("\\\\192.168.1.21\epson")
tp msh gagal...
mas cyber, saya belum nemu caranya kalau dengan extension PECL diatas. tapi silakan baca http://stackoverflow.com/questions/5694144/printing-over-network-from-php-app, ada class LPR Print yang bisa send dokumen buat diprint oleh printer jaringan.
ReplyDeletebagaimana cara pengaturan layout untuk hasil reportnya supaya rapi?
ReplyDeletemisalnya untuk hasil cetak untuk POS adalah seperti ini
PT. ABCD
----------------------------------------
Nama Barang Jml Hrg Satuan Total
----------------------------------------
Barang satu 2 25000 50000
Barang dua 1 50000 50000
----------------------------------------
Total = 100000
Diskon = 5000
Bayar = 100000
Kembali = 95000
Setiap nominal angka posisinya align right
jika anda pernah belajar layouting screen dengan C, anda akan mudah mengerti. PHP mendukung layout dengan tanda \t untuk tab, \n untuk ganti baris, %s string, %f float, %d desimal dan lain-lain.
ReplyDeleteMas Gimana Caranya untuk mengubah font nya,,? sebab akan saya gunakan untuk mencetak barcode
ReplyDeletesaya sih belum pernah nyoba ganti font mas Joe, tapi coba di setting default printer ybs diganti aja font defaultnya. sapa tau bisa.
ReplyDelete