在LP2844Z(Zebra打印机)上收录PNG

我正在创建一个基于HTML5canvas的签名/绘图框。 目前,我们将canvas作为PNG保存在服务器上,但可以轻松地将base64字符串保存在数据库中。 现在的问题是我们如何在打印的收据上包含签名。

目前我们使用^ GF字段来处理打印图像,但问题是PNG文件需要用于打印机的格式。 我可以简单地包含Base64编码的字符串吗? 或者我应该将其转换为ASCIIhex字符串? 或者我应该先将它转换为位图吗?

我真的没有找到任何关于这个特定打印机是否处理PNG文件,甚至是如何发送它们的文档。 我发现的唯一信息是将其作为B64或Z64位图发送,但我看到了在任何地方发送png的参考。

您需要发送的数据不是PNG。 您需要拍摄图像并将其转换为黑白图像并将数据发送到打印机。 例如,如果您的图像是40x50px,则可以拍摄图像,并去除颜色信息,这样您就可以获得总共2000位的数据。 然后像^ GFB,250,250,5,{2000位数据}一样发送你的ZPL。

我通过获取2000位/ 8(位/字节)来获得250个字节。 我将40除以8得到5.行数将自动计算。

在处理Zebra打印机时,我觉得有用的东西是用比特来思考。 所有图形都在一个位上完成。

请记住,您要发送的图像将根据打印机的DPI更改大小。 203 DPI打印机将在大约.2英寸x .25英寸处显示我的示例。 在300 DPI打印机上,它将显示大约.13in乘.16in。 这是因为打印机只是将原始数据放在格式上,而px的数量是图像的点数。

希望这有帮助!

参考文献:[1] ZPL Manuel,第208页(^ GF page2)。