javascript - Zebra 打印机中的编码日期

标签 javascript encoding printing zebra-printers

我需要将 Zebra M4Plus 打印机中的“日期字段”从 UTF-8 编码为 UTF-16。为此,我需要使用“所需的翻译表”。在文档中我发现了这个:

~DER:JIS.DAT,27848,300021213001...

但我不知道 JIS.DAT 是什么,为什么是 27848。

这是我的代码示例:

qz.append("^XA");
qz.append("^FO160,635");
qz.append("^A@R,30,30,E:TT0003M_.FNT");
qz.append("~DER:.DAT,27848,Данные для вывода^FS"); - it not work. Printer go to offline.

谁有这方面的经验,请帮忙。

最佳答案

请尝试强制 Java 小程序使用西里尔字母:qz.setEncoding("cp1251");qz.setEncoding("windows-1251");除非打印机本身支持 UTF-16,否则 qz.setEncoding("UTF-16");

更新:在较新版本的 QZ Tray 中,语法为 qz.configs.create("My Printer", { encoding: 'UTF-8' });

此外,请确保定义 <meta charset="utf-8">在您的网页中。

编辑:这里有详细的原因解释:Printer ZebraZ4MPlus don't print Russian Cirillyc character

Java 习惯于假设您要使用的字符集,通常是 cp1252 (Windows) 或 UTF-8 (*nix)。根据打印机期望的编码(以及它支持的编码),Java 首先需要在发送之前将这些字符/命令转换为合适的等价物。提供了 Java 7 支持的编码的完整列表 here .

关于希腊字符支持,qz bug tracker 上提出了一个非常相似的问题。诀窍是告诉 Java 和打印机正在使用哪种语言/字符编码。

最后,我遇到过 html/js 文件上的 BOM 标志(字节顺序标记)导致不良结果的情况。在那种情况下,JavaScript 在发送到 Java 之前就知道文档的编码和翻译正在发生。我使用 Notepad++ 打开/关闭 UTF-8 BOM。

此外,这里是 qz 错误报告的链接,它与不同的打印语言(ESCP 而不是 ZPL)有关,但具有类似的症状,即 Java 的输出在他的打印机上被错误地转换。 https://code.google.com/p/jzebra/issues/detail?id=204#c10

-特雷斯

关于javascript - Zebra 打印机中的编码日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21114274/

相关文章:

javascript - 使用css在某一类元素下方添加图像

javascript - 如何等待动态 promise 列表中的最后一个 promise ?

javascript - 字节序安全复制二进制数据

c# - 打印异常 : The device is not ready

html打印页面,额外打印空白页

javascript - 从浏览器重新加载按钮重新加载和从 javascript 重新加载时获得不同的浏览器行为

iphone - 在 iPhone 中使用 UTF-8 进行编码和解码

c# - 读取 NpgsqlDataReader 时编码的字节序列无效

c# - 从 C# 中的标签打印机打印

c# - 从 32 位整数到 4 个字符的转换