PHP Thermal Printer Yazdırma

Lan ile bağlanmış olan thermal printer (ESC POS) lar normal yazıcı standartlarıyla çalışmaz farklı bir protokol uygulanır.

Thermal printerlar ESC Pos adı ile geçerler ve serial olarak haberleşme kabul ederler ve windows standartlarında bulunan yazdırma protokolleri ile yazdıramazsınız özellikle bir MAC kullanıyorsanız bu işin yanında deveye hendek atlatmak daha kolaydır.

ESC POS ile yazıcı çıktısı almanız için PHP server ile thermal printer ınız aynı network ağı üzerinde olmalıdır ve sonrasında aşağıda paylaştığım kod yapısı ile bu işlemi kolayca yapabilirsiniz.

<?php

//constant
$rn=chr(13).chr(10);
$esc=chr(27);
$cutpaper=$esc."m";
$bold_on=$esc."E1";
$bold_off=$esc."E0";
$reset=pack('n', 0x1B30);

 
//formating data text:
$string .= "Deneme \n";
$string .= "Deneme \n";
$string .= "Deneme \n";
$string .= "Deneme \n";
$string .= "Deneme \n\n\n\n\n\n";
$string .= $cutpaper;
$string .= $esc. chr(4) . chr(1);



//send data via TCP/IP port : the printer has tcp interface
$port = "9100";
$host = "192.168.1.210";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, $host, $port);
socket_write($socket, $string, strlen($string));
socket_close($socket);

ESC poslar genellikle 9100 portunu kullanır ancak ip adresi farklılık gösterebilir ESC POS ip adresini ağ taraması yaparak kolayca bulabilirsiniz yada modem üzerinden aldığı IP adresi kontrol edebilirsiniz.