如何在Node.JS中将原始命令发送到收据打印机?

时间:2019-08-30 17:32:01

标签: javascript node.js printing buffer escpos

我要做什么

当前有一台支持ESC / P原始打印的票据打印机。

我正在构建一个需要远程打印收据的应用程序。

我如何做

通过PrintNodes API将数据从我的应用发送到打印机。

我使用了NPM库“ ESCPOS”,并成功打印了一些样本。

'ESCPOS' npm不是远程打印库-但我进行了测试以确保一切正常且正常运行)

我的问题

打印节点要求您的打印作业的内容类型为“ raw_base64”。

所以我接受了原始命令

将它们转换为十六进制字节

0x1B"@"0x1B0x38'should be bold'

然后将其转换为base_64

MHgxQiJAIjB4MUIweDM4J3Nob3VsZCBiZSBib2xkJw==

我得到的是经过解码的base64的纯文本,而不是我发送给打印机的渲染命令。

上面的示例收据应为加粗的字符串“应该加粗”。

返回的是原始esc / p命令的所有十六进制值。

My Print Output

我做了什么

我尝试了ESCPOS(NPM库),并在没有Printnode的情况下将数据直接发送到打印机,并且打印效果完美。

这使我相信也许我没有正确发送数据。

这是我在发帖请求中发送给printnode api的内容

let bodytosend = {
    printer: 69079558,  
    title: 'Sample Print Job',
    contentType: 'raw_base64',
    content: "MHgxQiJAIjB4MUIweDM4J3Nob3VsZCBiZSBib2xkJw==",
    source: 'Created from node app.js'
}

1 个答案:

答案 0 :(得分:0)

只是碰到了这个仓库。

收据 可打印的数字收据
将类似markdown的文本转换为收据打印机命令或SVG图像。
https://github.com/receiptline/receiptline