Sobatcoding.com - Tutorial Direct Print (Cetak Langsung) Ke Printer Menggunakan PHP
Di setiap aplikasi web maupun dekstop pasti ada fitur direct print dimana fitur ini banyak digunakan untuk mencetak berbagai macam laporan, struk ataupun nota pembelian. Ada yang saat cetak laporan menggunakan browser ataupun direct langsung ke printer. Cetak laporan langsung ke printer atau direct print dirasa lebih praktis tanpa muncul pop up dan melakukan klik berkali-kali. Nah, pada kesempatan kali ini admin akan mencoba share pengalaman print direct langsung ke printer menggunakan php. Tutorial ini bisa digunakan juga sebagai referensi script printer kasir dengan php.
Kali ini admin akan mencoba menggunakan sebuah library bernama ESC/POS Print Driver for PHP.
Library ini mengimplementasikan subset protokol ESC/POS Epson untuk printer resi termal. Ini memungkinkan Anda membuat dan mencetak tanda terima dengan format dasar, pemotongan, dan kode batang pada printer yang kompatibel.
Library ini dikembangkan untuk menambahkan dukungan drop-in untuk pencetakan tanda terima ke aplikasi PHP apa pun, termasuk aplikasi point-of-sale (POS) berbasis web.
Untuk implementasinya perhaitkan langkah-langkah berikut:
Silahkan kalian download dulu library nya menggunakan composer dengan menjalankan perintah berikut:
composer require mike42/escpos-php
Pastikan printer yang kalian gunakan sudah di share terlebih dahulu. Setting agar printer bisa share dan sesuaikan nama printer tersebut agar mudah digunakan.
Buatlah sebuah file bernama index.php dan masukkan kode berikut :
<?php
require __DIR__ . '/vendor/autoload.php';
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
use Mike42\Escpos\Printer;
try {
/**
* Printer Harus Dishare
* Nama Printer Contoh: Generic
*/
$connector = new WindowsPrintConnector("Generic");
$printer = new Printer($connector);
/** RATA TENGAH */
$title = "TEST PRINTER ANTRIAN";
$printer->initialize();
$printer->setFont(Printer::FONT_A);
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->text("\n");
$printer->initialize();
$printer->setFont(Printer::FONT_B);
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->text(date('d/m/Y H:i:s'). "\n");
$printer->setLineSpacing(5);
$printer->text("\n");
$printer->initialize();
$printer->setFont(Printer::FONT_A);
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->text("Nomor Antrian Anda Adalah :\n");
$printer->text("\n");
$printer->initialize();
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->setTextSize(6, 4);
$printer->text("A010" . "\n");
$printer->text("\n");
$printer->initialize();
$printer->setFont(Printer::FONT_C);
$printer->setTextSize(2, 2);
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->text("LOKET : UMUM" . "\n");
$printer->text("\n\n\n");
$printer->initialize();
$printer->setFont(Printer::FONT_A);
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->text("Silahkan Menunggu Antrian Anda\n");
$printer->text("Terima Kasih\n");
$printer->text("\n");
$printer->cut();
/* Close printer */
$printer->close();
} catch (Exception $e) {
echo "Couldn't print to this printer: " . $e -> getMessage() . "\n";
}
Dari script di atas kita akan mencoba cetak menggunakan printer yang telah di share dengan nama Generic.
Perintah $printer->cut()
berfungsi untuk memotong kertas secara otomatis setelah selesai melakukan print. Biasanya fitur ini cocok untuk printer thermal yang banyak digunakan di aplikasi kasir (POS).
Library ini juga bisa digunakan di framework seperti Codeigniter.
Untuk referensi lebih lanjut kalian bisa baca di link berikut : https://github.com/mike42/escpos-php.
Sekian tutorial kali ini. Jika teman-teman memiliki pertanyaan atau saran mengenai artikel ini, jangan ragu untuk meninggalkan komentar pada form di bawah ini.
Semoga bermanfaat.
Komentar 15