【问题标题】:Print-Server written with Electron/Node.js使用 Electron/Node.js 编写的打印服务器
【发布时间】:2018-06-25 14:25:27
【问题描述】:

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

我现在的问题是,我如何编码这个缓冲区,因为它不可能通过 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);
}

【问题讨论】:

    标签: node.js electron thermal-printer epson


    【解决方案1】:

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

    【讨论】:

    • 您是否了解如何在网络中公开打印机,以便应用程序将其作为打印机发现?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    相关资源
    最近更新 更多