我有一个要求。我开发了一个具有 HTML 内容的网络应用程序。我想将此内容打印到 Zebra 蓝牙打印机 (IMZ320)。浏览了几篇博客后,我发现需要将 HTML 内容转换为 ZPL 格式才能打印。
我们可以将 HTML 转换为 ZPL,然后使用插件发送打印 - https://github.com/LiamBateman/cordova-print
是否有任何插件或库可以实现 HTML 到 ZPL 的转换?
非常感谢, 赛义德·伊斯梅尔。
我为此使用了一个简单的 JS 函数。第一个函数用于格式化文本以在 HTML 中显示,第二个函数用于格式化文本以进行 ZEBRA 打印。我在本例中使用了 CPCL。但 ZPL 也会以同样的方式工作。
function sDisplayText(left) {
var sResult = "<div>" + left + "</div>";
return sResult;
}
function sPrintText(left) {
var sResult = "T 7 0 30 30 " + left + '\r\n';
return sResult;
}
我假设您从某个地方的数据库获取内容。您必须在读取数据并逐行转换时使用该函数:
这是一个例子
var pStr = "";
var dStr = "";
pStr = pStr + sPrintText('My test row 1');
dStr = dStr + sDisplayText('My test row 1');
pStr = pStr + sPrintText('My test row 2');
dStr = dStr + sDisplayText('My test row 2');
这将导致:
dStr = "<div>My test row 1</div><div>My test row 2</div>"
pStr = "T 7 0 30 30 My test row 1\r\nT 7 0 30 30 My test row 2\r\n"
您可以将“dStr”的内容显示在浏览器上,并在打印机上使用“pStr”。
我进一步建议使用一个能够理解 ZEBRA 的插件,而不仅仅是任何打印插件。
这是一款适用于 Android 和 Zebra 的工具
此处提供(商业/非免费)HTML 到 ZPL API:https://www.htmltozpl.com。
您可以将 HTML 字符串发送到 API,它会将 HTML 转换为 ZPL 代码,然后可以将其发送到 Zebra 标签打印机。
现在可以使用开源工具“html2zpl”将 HTML 转换为 ZPL。请参考https://github.com/meiXXI/html2zpl。
html2zpl 基于嵌入式 Chromium,将您的网页内容呈现为 PNG。因此,您可以利用完整的网络技术堆栈来创建标签。您可以通过文件或使用外部 URL 引用它来提交您的 Web 内容(首选)。
渲染为 PNG 后,您的内容将被转换为单色图像并以 ZPL 本机 ASCII 十六进制字符串进行编码。最终的 ZPL 标签仅包含嵌入图形字段 (^GF) 中的 ASCII 十六进制字符串,并将在响应中发回。