打印机ZebraZ4MPlus不打印俄罗斯Cirillyc字符(Printer ZebraZ4MPl

2019-11-02 19:44发布

我尝试使用小程序“QZ-打印”从JavaScript打印在俄罗斯一些文本。 我的js代码:

                if (qz !== null) {
                    qz.append("^XA");
                    qz.append("^CWX,E:TT0003M_.FNT^FS");
                    qz.append("^CI29");
                    qz.append("^LH5, 80");
                    qz.append("^FO160,220^AUR,5,10^FD" + Черноморец + "^FS");
                    qz.append("^XZ");
                    qz.print();
                }

在这种变型我使用ZPL编码CI29。 但是这个代码后,我的打印机进入离线...帮助仅限重新启动电脑和打印机。

当我发送下一个码 - 一切OK:

                    qz.append("^XA");
                    qz.append("^LH5, 80");
                    qz.append("^FO120,110^ATR,5,10^FD" + Черноморец + "^FS");
                    qz.print();

但打印机打印奇怪的字符,而不是“Черноморец”类似KOI8-R。

谁知道如何在俄罗斯打印?

Answer 1:

请参阅此主题: 在斑马打印机编码日期

解决的办法是4份,它包括:

  1. 正确的翻译表(特别ZPL命令),如^CI17^CI14等。
  2. 你的JavaScript文件的文件编码进行编码UTF-8,如果你想直接使用Unicode字符(您也可以选择使用Unicode逃逸格式,但对于大多数程序员来说,它是不需要的,因为.js文件已经是UTF-8在默认情况下)
  3. 告诉爪哇(在这种情况下,QZ)使用正确的编码。 什么工作了以前的人被qz.setEncoding("UTF-16"); 虽然CP-1251 可以使成功也是如此。 更新:在QZ纸盘的较新版本,语法是qz.configs.create("My Printer", { encoding: 'UTF-8' });
  4. 如果将数据从一台服务器(AJAX等)的到来,确保内容的默认输出配置正确,以及(了Apache,PHP等)。 http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q8

是什么让这个特别困难的是字符翻译和字体,可你不知道它切换三次。


第一次编码疑难杂症

JavaScript的将默认使用的编码.js文件本身(通常为UTF-8,但也可以是ANSI在许多其他之中。记事本++将会从“编码”菜单选项,显示这一点)。


第二编码疑难杂症

Java将在内部使用UTF-16,但随后没有任何警告用户,Java的,当它被写入“原始”,它在Windows将被转换为CP-1252,丢弃许多UTF-16字符会做一个角色转换。 这种转换是非常好的只有当编码有是mapable(即CP-1251有很好地映射为Unicode许多西里尔字母)的字符。 出于这个原因,QZ故意Echo的约默认编码,你应该看到,如果在Java控制台中,一旦激活日志消息: INFO: Current printer charset encoding: windows-1252


第三编码疑难杂症

在我的经验,大多数打印机支持西里尔文,但根据打印机的时代,可能需要兼容的代码页或上载的字体,等等,这是所有从供应商处非常具体。 在收据打印机的情况下,代码页是很不一致。 幸运的是斑马提供了绝妙的技术支持和快速周转的这些问题。


我们如何想通了这一点

在上述连接线的情况下,斑马开发商(贾森)帮助与打印机部分,和开发商QZ(我)帮助与Java部分。 贾森给我发电子邮件直接帮助这个问题。

我希望这个解释可以帮助你和其他许多人。 请记住这线程作为回答是否能解决您的问题,或者如果你有关于原始打印其他问题联系QZ社会各界的支持。

三防



Answer 2:

我有一个旧的书。 但启动^ CI29你可以尝试改变要么^ CI17(Unicode)的或^ CI14(16种Unicode编码的字体)的行。

您可能还需要从斑马站点获取使用Z-工具的字体,并将其手动添加到打印机。 祝好运。



Answer 3:

我发现有编码CI28。 我从JSP(<%@页面的contentType = “text / html的” 的pageEncoding = “UTF-8” %>)JS-代码发布:

qz.append("^XA");
qz.append("^CWX,E:TT0003M_.FNT^FS");
qz.append("^CI28");
qz.append("^FO50,400^AX,80,70^FDCyrillic: ЖЛЗ^FS");
qz.append("^XZ");
qz.print();

但打印机只打印“Cyrilic:”。 有什么问题? 请帮助,谁知道。 一切都很好,而当从JSP - - 当我从文件打印此代码不能正常工作。



文章来源: Printer ZebraZ4MPlus don't print Russian Cirillyc character