Node.js 节点热敏打印机未连接到Epson T88IV打印机 我正在尝试从javascript打印到Epson TM-T88IV打印机。
(这是一台热敏收据打印机。) 地位:Node.js 节点热敏打印机未连接到Epson T88IV打印机 我正在尝试从javascript打印到Epson TM-T88IV打印机。,node.js,thermal-printer,epson,econnrefused,Node.js,Thermal Printer,Epson,Econnrefused,(这是一台热敏收据打印机。) 地位: 打印机通过以太网连接到网络 我可以成功地ping打印机 我可以访问打印机web配置页 我已重新设置打印机 我可以使用Epson的Mac OS打印驱动程序打印到打印机上 发展环境: 我正在运行MacOSX10.10 我使用自制软件重新安装了Node和NPM 运行:brew更新…brew医生…brew符号链接 问题: 我不知道如何解决我遇到的错误 已尝试: 在Tonicdev.com上运行了它,但找不到任何线索。给我一本笔记本 我已经搜索并阅读了有关S
- 打印机通过以太网连接到网络
- 我可以成功地ping打印机
- 我可以访问打印机web配置页
- 我已重新设置打印机
- 我可以使用Epson的Mac OS打印驱动程序打印到打印机上
- 我正在运行MacOSX10.10
- 我使用自制软件重新安装了Node和NPM
- 运行:brew更新…brew医生…brew符号链接
- 在Tonicdev.com上运行了它,但找不到任何线索。给我一本笔记本
- 我已经搜索并阅读了有关Stackoverflow的每一个经济问题
- 我已尝试将此代码放在一个独立的print.js文件中,并调用:
node print.js
nc -z 192.168.77.22 1-6000
打印机.init未建立连接。打印机.isPrinterConnected正在返回false
我用正确的端口重新试用了爱普生的EPOSSDK。我收到以下错误:错误\u超时
所以,我想我可能没有正确设置超时值?
节点热敏打印机(代码)
var打印机=需要(“节点热敏打印机”);
printer.init({
类型:“爱普生”,
接口:'/dev/usb/lp0',
ip:“192.168.77.22”,
端口:'515'
});
打印机.isPrinterConnected(功能(未连接){
console.log(未连接);
});
process.on('uncaughtException',函数(err){
控制台日志(err);
});
printer.alignCenter();
printer.println(“你好世界”);
打印机。剪切();
打印机。执行(函数(错误){
如果(错误){
控制台错误(“打印失败”,错误);
}否则{
控制台日志(“打印完成”);
}
});代码>当我扩大搜索范围时,我发现打印机正在另一个端口上侦听命令
nc -z 192.168.77.22 1-50000
…重新调整了以下结果:
Connection to 192.168.77.22 port 80 [tcp/http] succeeded!
Connection to 192.168.77.22 port 515 [tcp/printer] succeeded!
Connection to 192.168.77.22 port 9100 [tcp/hp-pdl-datastr] succeeded!
因此,我只是在代码的init部分将端口号更改为9100,瞧 我不知道为什么我的爱普生TM-M30 POS打印机的端口从官方的“8008”改为“515”
问题在于epos-2.7.0.js已将连接端口声明为常量:
...
this.IFPORT_EPOSDEVICE = 8008;
this.IFPORT_EPOSDEVICE_S = 8043;
...
但真正的是515,所以你必须修改官方js:
this.IFPORT_EPOSDEVICE = 515;
通过此更改,以下是我的代码:
var ePosDev = new epson.ePOSDevice();
var ipAddress = '192.168.150.162';
var port = '515';
var printer = null;
ePosDev.connect(ipAddress, port, function callback_connect(resultConnect){
var deviceId = 'local_printer';
var options = {'crypto' : false, 'buffer' : false};
if ((resultConnect == 'OK') || (resultConnect == 'SSL_CONNECT_OK')) {
//Retrieves the Printer object
ePosDev.createDevice(
deviceId,
ePosDev.DEVICE_TYPE_PRINTER,
options,
function callback_createDevice(deviceObj, errorCode){
if (deviceObj === null) {
return;
}
printer = deviceObj;
printer.addTextAlign(printer.ALIGN_CENTER);
printer.addText('My text..\n');
printer.send();
if (ePosDev.isConnected) {
printer.send();
}
ePosDev.deleteDevice(printer, function callback_deleteDevice(errorCode){
ePosDev.disconnect();
});
});
}});
var ePosDev = new epson.ePOSDevice();
var ipAddress = '192.168.150.162';
var port = '515';
var printer = null;
ePosDev.connect(ipAddress, port, function callback_connect(resultConnect){
var deviceId = 'local_printer';
var options = {'crypto' : false, 'buffer' : false};
if ((resultConnect == 'OK') || (resultConnect == 'SSL_CONNECT_OK')) {
//Retrieves the Printer object
ePosDev.createDevice(
deviceId,
ePosDev.DEVICE_TYPE_PRINTER,
options,
function callback_createDevice(deviceObj, errorCode){
if (deviceObj === null) {
return;
}
printer = deviceObj;
printer.addTextAlign(printer.ALIGN_CENTER);
printer.addText('My text..\n');
printer.send();
if (ePosDev.isConnected) {
printer.send();
}
ePosDev.deleteDevice(printer, function callback_deleteDevice(errorCode){
ePosDev.disconnect();
});
});
}});