在 NodeJs 中从类型转换:'image/png' 到 ZPL



我在做什么和尝试:

我正在尝试将从

中截取的屏幕截图转换为 NodeJS 中的 ZPL 字符串。非常像 http://labelary.com/viewer.html,它会获取图像并输出 ZPL 代码。

我在做什么:

  1. 我正在使用一个名为"domToImage"(https://github.com/tsayen/dom-to-image(的包,它截取了我所说的DOM的屏幕截图。我目前正在使用 domToImage.toBlob(( 函数,然后返回 Blob{size: 102776, type: "image/png"}。

  2. 为了测试它是否实际有效,我使用"文件保护程序"(https://www.npmjs.com/package/file-saver(将文件保存为 PNG,它确实有效,图片看起来很棒!

这是我正在做的事情的简单示例代码

domtoimage.toBlob(document.getElementById('labelInfo'))
.then(function (blob)
{
console.log(blob)
saveAs(blob, "test.png");
});

我正在尝试做的是将该"blob"转换为ZPL字符串或格式,以便我可以将其发送到网络中的打印机。


我尝试过:

A( 我尝试安装 image-to-zpl(https://www.npmjs.com/package/image-to-zpl(,但我认为我可能做错了什么,因为我无法像我能够安装的任何其他模块一样需要它,我收到一个错误说:找不到模块"image-to-zpl"的声明文件。'/path/to/node_modules/image-to-zpl/index.js"隐式具有"any"类型。我什至尝试使用导入而不是要求,但没有运气。

B(我在Java中找到了一个代码(http://www.jcgonzalez.com/java-image-to-zpl-example(,但我几乎什么都不懂,我不知道如何将数据从我的应用程序发送到Java文件中,然后使用NodeJS将字符串带回应用程序(我是菜鸟(。

C(我研究了Labelarys API,但它所做的只是将ZPL转换为PDF或PNG,但不幸的是,反之亦然。

D(想到使用zbtprinter(https://github.com/bstmedia/zbtprinter/(,因为它实际上具有我需要的功能,但不幸的是它会直接使用蓝牙将其发送到打印机,而不是输出ZPL,在我的情况下无法使用,因为打印机没有蓝牙。它在网络上。我仍然必须学习如何通过网络将整个字符串直接发送到打印机:/


我迫切需要帮助伙计们


编辑

所以这就是我在 HTML 中所做的:

<div style="width: 1000px" class="labelInfo" id="labelInfo">
<img src="images/template.bmp" style="max-width: 100%; max-height: 100%">
<div class="ref"> {{ referenceNumber }} </div>
<div class="serial">{{ serialNumber }}</div>
<div class="date" id="date">{{ yearMonth }}</div>
<canvas class="qr" id="canvas"></canvas>
</div>

描述: 我正在使用一个图像模板,其中包含所有徽标,标签的空白部分被 3 个div 填充;我有 3 个div,根据用户输入,这些字段被放置在图像模板中的指定位置;画布用于根据序列号的内容放置二维码。

当用户单击按钮时,后端代码会获取整个"labelInfo"div 的图像,然后将其转换为 ZPL 以便发送到打印机(这就是我想要实现的目标(

将通用图像转换为 ZPL 可用的图像并非易事,不能用几行伪代码来描述。 相反,我已经有这段代码闲置了一段时间,你的问题促使我清理它并使其可用:

https://github.com/metafloor/zpl-image

npm 安装 zpl-image

在浏览器和节点.js中都有效。 在浏览器中,传入<img><canvas>元素,并以 ZPL 使用的 Z64 压缩 GRF 格式返回渲染图像。

用于打印图像的 ZPL 以及用于 zebra 打印机的其他任何内容,如下所示:

// image is a <img> or <canvas>
let res = imageToZ64(image);
let zpl = `
^XA^LH0,0^FWN^PON^PMN^LRN
^FO10,10^GFA,${res.length},${res.length},${res.rowlen},${res.z64)
^XZ`;

相关内容

  • 没有找到相关文章

最新更新