用Electron / Node.js编写的打印服务器

时间:2018-01-16 19:42:57

标签: node.js electron thermal-printer epson

我正在尝试创建一个用电子和节点js编写的打印服务器。 我的目标是将打印作业的主体从POS机接收到Epson热敏打印机。 正如我从Epson的文档中正确理解的那样,打印机默认在tcp端口9100和udp 3289上进行通信。 所以我创建了一个websocket,它使用“Net”模块监听tcp端口。 套接字成功建立,我也收到一些缓冲区数据。

我现在的问题是,如何对此缓冲区进行编码,因为无法通过Node.js中的默认编码类型对此进行编码。

或者您是否建议使用打印文件的虚拟打印机,然后尝试从中读取数据? 建议使用哪种模块或虚拟打印机? 我已经搜索了很长一段时间而没有找到任何积极的结果。

以下是来自网络服务器的当前代码:

var server = net.createServer(function(socket) {
        socket.setEncoding('utf8')
        socket.on('data', function(buffer) {
                    var decoded = buffer
                    console.log(decoded)
                })
        socket.on('end', socket.end)
        });
server.on('connection', handleConnection);
server.listen(9100, function() {
        console.log('server listening to %j', server.address());
});
function handleConnection(conn) {  
        var remoteAddress = conn.remoteAddress + ':' + conn.remotePort;
        console.log('new client connection from %s', remoteAddress);
        conn.on('data', onConnData);
        conn.once('close', onConnClose);
        conn.on('error', onConnError);
}

1 个答案:

答案 0 :(得分:0)

好的,我已经开始运行了。 问题是,兑现系统首先请求打印机状态" DLE EOT n"。 所以我用相应的状态位/字节(0x16)响应兑现系统。 然后,POS发送了我从CP437解码为UTF8的printjob以捕获并能够让我的脚本读取传入的printrequest。 希望这篇文章可以帮助任何开发类似厨房监视器,打印服务器等的人,因为我发现网络上关于这个主题的信息非常少。