Direct Printing menggunakan PHP

Direct Printing menggunakan PHP

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.

 

Mengenal Library 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:

 

Download Library ESC/POS Print Driver for PHP

Silahkan kalian download dulu library nya menggunakan composer dengan menjalankan perintah berikut:

composer require mike42/escpos-php

 

Share Printer

Pastikan printer yang kalian gunakan sudah di share terlebih dahulu. Setting agar printer bisa share dan sesuaikan nama printer tersebut agar mudah digunakan.

 

Kode Konfigurasi PHP

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.