Membuat Cetak Langsung Ke Printer Kasir PHP

Sebelumnya saya telah share bagaimana membuat interface untuk printer kasir dengan html pada artikel ini :
https://www.sistemit.com/membuat-faktur-dan-invoice-penjualan-dengan-php-dan-html/

Nah kali ini saya akan share bagaimana mengkoneksikan php ke dalam suatu printer kasir. Untuk mengkoneksikan suatu interface faktur ke printer kasir berbentuk thermal (yang biasa di indomar**) atau yang berbentuk dotmatriks (yang umumnya memiliki bunyi printer yang khas), kita dapat menggunakan dua metode.

1. Koneksi Printer Kasir dengan Menggunakan Google Chrome.

Berhubung php adalah salah satu pemrograman berbasis web, metode pertama adalah dengan menggunakan google chrome. Dengan menggunakan chrome kita tidak perlu lagi susah untuk membuat pengaturan dengan menggunakan bahsa pemrograman php. Namun cukum membuat interface html yang susuai dengan ukuran kertas pada printer yang drivernya telah kita install di komputer. Untuk design html anda dapat menggunakan design yang ada pada artikel saya sebelumnya ini :

https://www.sistemit.com/membuat-faktur-dan-invoice-penjualan-dengan-php-dan-html/

Ukuran font dan lebar dokunmen dapat anda sesuaikan. Berikut adalah contoh salah satu printer kasir saya yang saya sesuaikan :

Dalam gambar diatas saya menggunakan sebuah printer kasir yang sudah di install di komputer kasir. pada print preview google chrome kita tinggal menyesuaikan ukuran nya sesuai dengan ukuran kertas printer kasir yang ada.

Masing masing printer kasir memiliki ukuran yang berbeda beda.

adapun contoh source code untuk interface nya adalah sebagai berikut :


<html>
<head>
<title>Faktur Pembayaran</title>
<style>

#tabel
{
font-size:15px;
border-collapse:collapse;
}
#tabel  td
{
padding-left:5px;
border: 1px solid black;
}
</style>
</head>
<body style='font-family:tahoma; font-size:8pt;'>
<center><table style='width:350px; font-size:16pt; font-family:calibri; border-collapse: collapse;' border = '0'>
<td width='70%' align='CENTER' vertical-align:top'><span style='color:black;'>
<b>APOTEK GEMILANG FARMA</b></br>JL XXXXXXXXXXX XXXXXXX</span></br>


<span style='font-size:12pt'>No. : xxxxx, 11 Juni 2020 (user:xxxxx), 11:57:50</span></br>
</td>
</table>
<style>
hr { 
    display: block;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: auto;
    margin-right: auto;
    border-style: inset;
    border-width: 1px;
} 
</style>
<table cellspacing='0' cellpadding='0' style='width:350px; font-size:12pt; font-family:calibri;  border-collapse: collapse;' border='0'>

<tr align='center'>
<td width='10%'>Item</td>
<td width='13%'>Price</td>
<td width='4%'>Qty</td>
<td width='7%'>Diskon %</td>
<td width='13%'>Total</td><tr>
<td colspan='5'><hr></td></tr>
</tr>
<tr><td style='vertical-align:top'>3 WAY STOPCOCK</td>
<td style='vertical-align:top; text-align:right; padding-right:10px'>7.440</td>
<td style='vertical-align:top; text-align:right; padding-right:10px'>100</td>
<td style='vertical-align:top; text-align:right; padding-right:10px'>0,00%</td>
<td style='text-align:right; vertical-align:top'>744.000</td></tr>
<tr>
<td colspan='5'><hr></td>
</tr>
<tr>
<td colspan = '4'><div style='text-align:right'>Biaya Adm : </div></td><td style='text-align:right; font-size:16pt;'>Rp3.500,00</td>
</tr>
<tr>
<td colspan = '4'><div style='text-align:right; color:black'>Total : </div></td><td style='text-align:right; font-size:16pt; color:black'>747.500</td>
</tr>
<tr>
<td colspan = '4'><div style='text-align:right; color:black'>Cash : </div></td><td style='text-align:right; font-size:16pt; color:black'>1.000.000</td>
</tr>
<tr>
<td colspan = '4'><div style='text-align:right; color:black'>Change : </div></td><td style='text-align:right; font-size:16pt; color:black'>252.500</td>
</tr>
<tr>
<td colspan = '4'><div style='text-align:right; color:black'>DP : </div></td><td style='text-align:right; font-size:16pt; color:black'>0</td>
</tr>
<tr>
<td colspan = '4'><div style='text-align:right; color:black'>Sisa : </div></td><td style='text-align:right; font-size:16pt; color:black'>0</td>
</tr>
</table>
<table style='width:350; font-size:12pt;' cellspacing='2'><tr></br><td align='center'>****** TERIMAKASIH ******</br></td></tr></table></center></body>
</html>

2. Koneksi Printer Kasir dengan Metode Direct Print PHP.

Nah, langkah kedua adalah yang lebih rumit dari yang pertama karena menggunakan perintah php khusus agar aplikasi dapat langsung mengarah ke printer untuk mencetak struk atau dokumen lainnya. Kelebihan metode yang kedua ini adalah kecepatan printer lebih cepat karena tidak ada loading seperti google chrome yang sebelumnya. Meskipun pencetakan melalui print preview google chrome tergolong cepat. Adapun langkah untuk direct print melalui php adalah sebagiai berikut :

1. Download Library Printer (php_printer.dll) library_printer.

2. Extract file bernama php_printer.dll kedalam folder C:\xampp\php\ext

3. Sesuaikan nama printer di source code di bawah ini untuk mencetak langsung ke dalam printer.

<?php
/* contoh text */  
$text = 'Ini adalah contoh teks untuk direct printing';     
/* tulis dan buka koneksi ke printer */    
$printer = printer_open("EPSON L120 Series");  //sesuaikan dengan nama printer anda
/* write the text to the print job */  
printer_write($printer, $text);   
/* close the connection */ 
printer_close($printer);
?>

Ganti EPSON L120 Series sesuai dengan nama printer yang anda install.

Jika tidak ada error anda berhasil melakukan direct printing dengan php. Cara ini sangat jarang saya gunakan karena saya lebih sering menggunakan metode pertama. Namun jika diperlukan cara ini adalah merupakan cara yang paling mudah untuk melakukan direct printing.

Demikianlah tutorial kali ini, Sekian terimakasih.

Semoga bermanfaat.

Related posts