gpt4 book ai didi

javascript - 从类型 : 'image/png' to ZPL in NodeJs 转换

转载 作者:行者123 更新时间:2023-11-30 13:53:12 28 4
gpt4 key购买 nike

我正在做和尝试的事情:

我正在尝试将从 < div > 截取的屏幕截图转换为 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. 为了测试它是否真的有效,我使用“FileSaver”( 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' 类型。我什至尝试使用 import 而不是 require 但没有成功。

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>

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

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

最佳答案

将通用图像转换为 ZPL 可用的图像非常重要,无法用几行伪代码来描述。相反,我已经将这段代码搁置了一段时间,你的问题促使我清理它并使其可用:

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

npm 安装 zpl-image

适用于浏览器和 node.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`;

关于javascript - 从类型 : 'image/png' to ZPL in NodeJs 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57819550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com