gpt4 book ai didi

javascript - 如何在 ESC/P 打印机正确解释的 javascript 数组中写入大于 7 位 (7F) 的十六进制转义序列?

转载 作者:行者123 更新时间:2023-11-30 11:25:11 26 4
gpt4 key购买 nike

我正在使用 QZ 托盘使用 ESC/P(不是 ESC/POS)打印机 9pin [1] 进行原始打印。基本上一切正常,直到我必须设置绝对水平位置 (ESC $)。

问题与[2]相同,但它使用Java,QZ tray使用JavaScript作为其示例[3],并使用十六进制转义序列(\xFF)[4]声明所有命令,字符从0 - 255 (\x00 -\xFF).

这里是关于问题的详细信息:

  1. 9针ESC/P设置绝对水平位置[1]

    ASCII: ESC $ nL nH
    Hex: 1B 24 nL nH
    0 <= nH <= 127
    0 <= nL <= 255
  2. 如果 nL 值为 0 到 127,则可以毫无问题地将数据发送到 QZ 托盘。

    var data = [
    '\x1B' + '\x40', // init

    '\x1B' + '\x24' + '\x10' + '\x00', // set horizontal
    '0x10' + '\x0D' + '\x0A', // print position ok

    '\x1B' + '\x24' + '\x7F' + '\x00', // set horizontal
    '0x7F' + '\x0D' + '\x0A', // print position ok

    '\x1B' + '\x24' + '\x80' + '\x00', // set horizontal
    '0x80' + '\x0D' + '\x0A', // print position PROBLEM

    '\x1B' + '\x24' + '\x00' + '\x01', // set horizontal
    '1x00' + '\x0D' + '\x0A', // print position ok

    ]

    如果 '\x80' + '\x00' 不正确,如何使用十六进制转义序列表示字符 128?

  3. 我尝试使用 JavaScript 类型数组 Uint8Array 和 Uint16Array,但没有成功打印,我认为这是因为 ESC/P 协议(protocol)希望它作为字符(数组)。

我尝试在 QZ 组和 stackoverflow 上搜索,但很难找到正确的关键字。

如有任何帮助,我们将不胜感激。谢谢。

[1] https://files.support.epson.com/pdf/general/escp2ref.pdf

[2] ESC/P Set Absolute Horizontal Print Position

[3] https://qz.io/wiki/2.0-raw-printing

[4] https://mathiasbynens.be/notes/javascript-escapes#hexadecimal

最佳答案

为了帮助别人解决这个问题,基本上我从 qz-print 邮件列表中得到了答案,这是一个已知的错误。(但很难找到关键字,因为它是关于原始编码错误的)。

对此(原始打印)最简单的解决方案是添加编码 ISO-8859-1,这样它就不会使用 UTF-8(这使得字符 128-255 为 2 个字节)。

var config = qz.configs.create(printer, {encoding: 'ISO-8859-1'});

另一种解决方案是使用十六进制格式的原始打印。[1] https://qz.io/wiki/2.0-Raw-Printing#hex

这是邮件列表中的讨论:[2] https://groups.google.com/forum/#!topic/qz-print/TE0D-wsRDRg

这是之前关于该错误的讨论:[3] https://groups.google.com/forum/#!topic/qz-print/r3VGPDaYKKE

最后一个,这是 github 问题,如果你想在某天跟踪它,它已解决。[4] https://github.com/qzind/tray/issues/155

关于javascript - 如何在 ESC/P 打印机正确解释的 javascript 数组中写入大于 7 位 (7F) 的十六进制转义序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48308706/

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