0

所以我现在参与了一个项目,我的顾问告诉我创建一个基于网络的信息亭。所以是的,我在考虑 html、javascript 等。但我的问题是将 POS 打印机链接到基于 Web 的(信息亭)时使用什么语言(标记或不标记)。我的想法是让客户点击他或她想要订购的东西,然后当客户完成其请求时。它通过POS打印机打印出请求

4

1 回答 1

0

你可以用 JavaScript 来做。Epson 实际上有一个Epson ePOS SDK for JavaScript

我在网上找到了这个示例代码。无法测试它,因为目前我附近没有爱普生 POS 打印机。

var printer = null;
var ePosDev = null;

function InitMyPrinter()
{ 
console.log("Init Printer");

var printerPort = 8008;
var printerAddress= "192.168.198.168"; 
if(isSSL)
{
printerPort = 8043;
} 
ePosDev = new epson.ePOSDevice();
ePosDev.connect(printerAddress, printerPort, cbConnect);
}
//Printing
function cbConnect(data) {
if(data == 'OK' || data == 'SSL_CONNECT_OK') {
ePosDev.createDevice('local_printer', ePosDev.DEVICE_TYPE_PRINTER,
{'crypto':false, 'buffer':false}, cbCreateDevice_printer);
} else {
console.log(data);
}
}

function cbCreateDevice_printer(devobj, retcode) {
if( retcode == 'OK' ) {
printer = devobj;
printer.timeout = 60000;
printer.onreceive = function (res) { //alert(res.success);
console.log("Printer Object Created");

};
printer.oncoveropen = function () { //alert('coveropen');
console.log("Printer Cover Open");

}; 
} else { 
console.log(retcode);
isRegPrintConnected = false;
}
}

function print(salePrintObj) {
debugger;
if(isRegPrintConnected == false
|| printer==null)
{
return ;
}
console.log("Printing Started");


printer.addLayout(printer.LAYOUT_RECEIPT, 800, 0, 0, 0, 35, 0);
printer.addTextAlign(printer.ALIGN_CENTER);
printer.addTextSmooth(true);
printer.addText('\n');
printer.addText('\n');

printer.addTextDouble(true, true);
printer.addText(CompanyName + '\n');

printer.addTextDouble(false, false);
printer.addText(CompanyHeader + '\n');
printer.addText('\n');

printer.addTextAlign(printer.ALIGN_LEFT);
printer.addText('DATE: '+currentDate+'\t\t');

printer.addTextAlign(printer.ALIGN_RIGHT);
printer.addText('TIME: '+currentTime+'\n');

printer.addTextAlign(printer.ALIGN_LEFT);

printer.addTextAlign(printer.ALIGN_RIGHT);
printer.addText('REGISTER: '+RegisterName+'\n');
printer.addTextAlign(printer.ALIGN_LEFT);
printer.addText('SALE # '+SaleNumber+'\n');

printer.addTextAlign(printer.ALIGN_CENTER);
printer.addTextStyle(false, false, true, printer.COLOR_1);
printer.addTextStyle(false, false, false, printer.COLOR_1);
printer.addTextDouble(false, true);
printer.addText('* SALE RECEIPT *\n');
printer.addTextDouble(false, false);
....
....
.... 

}

希望它能进一步帮助你。

于 2017-08-05T16:43:37.447 回答