用 Electron/Node.js 编写的打印服务器
Print-Server written with Electron/Node.js
我正在尝试创建一个用电子和节点 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);
}
好的,我知道了 运行。
问题是,收银系统首先请求打印机状态 "DLE EOT n"。
所以我用相应的状态位/字节 (0x16) 响应兑现系统。
之后,POS 将我从 CP437 解码的打印作业发送到 UTF8 以捕获并能够让我的脚本读取传入的打印请求。
希望这 post 可以帮助任何正在开发厨房监视器、打印服务器等类似东西的人,因为我在网上发现关于这个主题的信息非常少。
我正在尝试创建一个用电子和节点 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);
}
好的,我知道了 运行。 问题是,收银系统首先请求打印机状态 "DLE EOT n"。 所以我用相应的状态位/字节 (0x16) 响应兑现系统。 之后,POS 将我从 CP437 解码的打印作业发送到 UTF8 以捕获并能够让我的脚本读取传入的打印请求。 希望这 post 可以帮助任何正在开发厨房监视器、打印服务器等类似东西的人,因为我在网上发现关于这个主题的信息非常少。