节点热敏打印机没有连接到爱普生T88IV打印机

我正在尝试从JavaScript打印到Epson TM-T88IV打印机。

(这是一个热敏收据打印机。)

状态:

  • 打印机通过以太网连接到networking。
  • 我可以成功地ping打印机。
  • 我可以访问打印机Webconfiguration页面。
  • 我已经重置了打印机。
  • 我可以使用Epson的Mac OS打印驱动程序打印到打印机。

开发环境:

  • 我运行的是Mac OS X 10.10
  • 我用Homebrew重新安装了Node和NPM。
  • Ran:酿造更新…酿造医生…酿造符号链接…

问题:

我无法弄清楚如何解决我遇到的ECONNREFUSED错误。

已经试过了:

  • 在Tonicdev.com上运行,无法find线索。 链接到补品笔记本。
  • 我已经search并阅读了Stackoverflow上的每个ECONNREFUSED问题。
  • 我已经尝试将此代码放置在独立的print.js文件中,并调用:

    node print.js

错误:

 { Error: connect ECONNREFUSED 192.168.77.22:8008 at Object.exports._errnoException (util.js:1012:11) at exports._exceptionWithHostPort (util.js:1035:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14) code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect', address: '192.168.77.22', port: 8008 } 

更新

我检查了设备上的哪些端口是开放/可用的。 事实certificate,爱普生的SDK文档是不正确的! 打开TCP /打印机请求的实际端口是515,而不是8008.很抱歉!

 nc -z 192.168.77.22 1-6000 

printer.init没有build立连接。 printer.isPrinterConnected返回false

我用正确的端口重新尝试了Epson的epos SDK。 我得到了以下错误: ERROR_TIMEOUT

所以,我想我可能不会正确设置TimeOut值?

节点 – 热敏打印机(代码)

 var printer = require("node-thermal-printer"); printer.init({ type: 'epson', interface: '/dev/usb/lp0', ip: "192.168.77.22", port: '515' }); printer.isPrinterConnected(function(isConnected){ console.log(isConnected); }); process.on('uncaughtException', function (err) { console.log(err); }); printer.alignCenter(); printer.println("Hello world"); printer.cut(); printer.execute(function(err){ if (err) { console.error("Print failed", err); } else { console.log("Print done"); } }); 

爱普生SDK(代码)

 var ePosDev = new epson.ePOSDevice(); function connect() { var ipAddress = '192.168.77.22'; var port = '515'; ePosDev.connect(ipAddress, port, callback_connect); } function callback_connect(resultConnect){ alert('Callback Called'); var deviceId = 'local_printer'; var options = {'crypto' : false, 'buffer' : false}; alert(resultConnect); if ((resultConnect == 'OK') || (resultConnect == 'SSL_CONNECT_OK')) { alert('Connected!'); ePosDev.createDevice(deviceID,ePosDev.DEVICE_TYPE_PRINTER,options,callback_createDevice); } else { alert('Not Connected!'); } } var printer = null; function callback_createDevice(deviceObj, errorCode){ if (deviceObj === null) { //Displays an error message if the system fails to retrieve the Printer object return; } printer = deviceObj; //Registers the print complete event printer.onreceive = function(response){ if (response.success) { //Displays the successful print message } else { //Displays error messages } }; } function createData(){ printer.addTextAlign(printer.ALIGN_CENTER); printer.addText("Hello World\n"); } function send(){ if (ePosDev.isConnected) { printer.send(); } } 

当我扩大search范围时,我发现打印机正在侦听另一个端口上的命令!

 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,瞧!

Interesting Posts