使用原始打印来打印简体中文字符

时间:2019-03-08 08:27:06

标签: javascript character-encoding thermal-printer epson qz-tray

我正在使用Epson TM-T82热敏票据打印机和QZ托盘来打印票据。 当我尝试打印汉字时,会产生奇数字符。

下面是配置设置和编码

var config = qz.configs.create(打印机,{encoding:'GB18030'});

我还尝试了打印到FILE:打印机,并按照Tres在线程上的建议,使用带有GB18030编码的Visual Studio Code进行查看

https://groups.google.com/forum/#!topic/qz-print/jp68IuW-LcA

因此,我认为我需要为打印机型号正确配置GB18030。

我还能做其他事情吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

需要发生三件事:

  1. 您需要一台能够打印中文的打印机(某些打印机需要特殊的固件,如果在中国以外的地区,期望对该固件有出口限制)
  2. 您需要知道打印机支持哪种字符编码。
  3. 您需要提供命令。

代码:

var config = qz.configs.create("Printer Name", {encoding: 'Big5'});  // *Epson T88 models with correct firmware.  Toggles Big5 with Hong Kong extensions.
                                            // {encoding: 'GBK'});   // Fuken POS90 ships with GB18030, but in testing, 'GBK' is required

var printData = [
   '\x1B' + '\x40',   // ESC @ - init command, necessary for proper byte interpretation
   '艾德蒙 AOC E2450SWH 23.6吋\n',
   ' LED液晶寬螢幕特價$ 19900',
   '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A',
   '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A',
   '\x1B' + '\x69'          // cut paper
];

qz.print(config, printData);

某些编程手册还指定:

var printData = [
    // ... 
    '\x1C' + '\x26' // Enter Hanzi (Japanese/Chinese/ Taiwanese/Korean Kanji Specifications) mode
    // ...
];

注意:测试时,繁体中文没有像其他语言那样具有“国际字符集”命令。希望这些信息对您有所帮助。