在网络应用程序中,我想使用POS(销售点)打印机打印收据。我想用Javascript做到这一点。有人能为我提供一个例子吗?
答案 0 :(得分:14)
我出去了,因为你的问题不是很详细 a)您的收据打印机是需要原始数据的热敏打印机, b)来自javascript""你在谈论从网络浏览器打印和 c)您无权从浏览器发送原始数据
这是一个Java Applet,可以解决所有这些问题,如果我对这些假设是正确的,那么你需要Java,Flash或Silverlight http://code.google.com/p/jzebra/
答案 1 :(得分:8)
如果您正在谈论基于浏览器的POS应用程序,那么它基本上不能开箱即用。有很多选择。
答案 2 :(得分:6)
编辑:2017年11月27日─BROKLLINKS
以下关于David Kelley 撰写的帖子的链接已被删除。
存储库的缓存版本,只需在Chrome浏览器中的网址前添加cache:
,然后按Enter键。
此解决方案仅适用于Google Chrome和Chromium-based个浏览器。
修改强>
(*)链接已损坏。幸运的是,我发现this repository包含以下降价文件中帖子的来源:A | B 强>
This link *解释了如何使用Chrome / Chromium USB API (1) {{3}为ESC / POS打印机制作Javascript界面}。
(2) *解释了如何使用chrome.usb.*
API连接USB设备。
答案 3 :(得分:5)
我最近只需按下网页上的按钮即可实现收据打印,而无需输入打印机选项。我使用 EPSON javascript SDK for ePOS 完成了它。我在 EPSON TM-m30 收据打印机上进行了测试。
以下是示例代码。
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);
....
....
....
}
答案 4 :(得分:4)
我将表格javascript打印到Star Micronics Webprnt TSP 654ii热敏打印机。此打印机是有线网络打印机,您可以将内容绘制到HTML画布并发出HTTP请求进行打印。唯一需要注意的是,此打印机尚不支持HTTPS协议,因此您将在生产中收到混合内容警告。联系Star Microics支持他们说,他们正在开发HTTPS支持,很快就会有固件升级。此外,看起来像TM-I的Epson Omnilink TM-88V打印机将支持javascript打印。
答案 5 :(得分:2)
如果你的打印机是爱普生,也许你可以看看这个。有一个javascript驱动程序
编辑:
以前的链接似乎已被打破
有关如何使用epson的epos的所有详细信息都在爱普生网站上:
https://reference.epson-biz.com/modules/ref_epos_device_js_en/index.php?content_id=139
答案 6 :(得分:1)
尝试Escpos 用于PHP POS打印使用 https://github.com/mike42/escpos-php
答案 7 :(得分:1)
您可以尝试使用https://www.printnode.com,这基本上就是您正在寻找的服务。您将桌面客户端下载并安装到用户计算机上https://www.printnode.com/download。然后,您可以使用其JSON API https://www.printnode.com/docs/api/curl/发现并打印到该用户计算机上的任何打印机。他们在这里有很多库:https://github.com/PrintNode/