我正在致力于创建一个基于 HTML5 画布的签名/绘图框。目前我们在服务器上将画布保存为PNG,但可以轻松地将base64字符串保存在数据库中。现在的问题是我们如何在打印的收据上添加签名。
目前我们使用 ^GF 字段来处理打印图像,但问题是 PNG 文件需要为打印机采用什么格式。我可以简单地包含 Base64 编码的字符串吗?或者我应该将其转换为 ASCII 十六进制字符串?或者我真的应该先将其转换为位图吗?
我并没有真正找到任何关于该特定打印机是否处理 PNG 文件,甚至如何发送它们的文档。我找到的唯一信息说将其作为 B64 或 Z64 位图发送,但我到处都看到发送 png 的参考。
您需要发送的数据不是 PNG。您需要拍摄图像并将其转换为黑白并将数据发送到打印机。例如,如果您有一个 40x50 像素的图像,您将拍摄该图像,并去掉颜色信息,这样您将获得总共 2000 位数据。然后将您的 ZPL 发送下来,例如 ^GFB,250,250,5,{2000 位数据}。
我通过取2000位/8(位/字节)得到250字节,得到250。我用 40 除以 8 得到 5。行数会自动计算。
我发现在使用 Zebra 打印机时有用的一点是从位的角度进行思考。所有图形都是在位级别上完成的。
请记住,您要发送的图像将根据打印机的 DPI 改变尺寸。 203 DPI 打印机将以大约 0.2 英寸 x 0.25 英寸显示我的示例。在 300 DPI 打印机上,其显示尺寸约为 0.13 英寸 x 0.16 英寸。这是因为打印机只会将原始数据放入格式中,而像素数就是图像的点数。
希望这有帮助!
参考:
[1] ZPL 手册第 208 页(^GF 第 2 页)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)