我需要发送一个字符串到点阵打印机,它使用爱普生FX仿真,将打印一个简单的条形码。我可以通过手动键入控制代码到字符串打印。
这是一个来自手册的示例:https://files.support.epson.com/pdf/general/escp2ref.pdf#page=327
我手动将数据输入到字符串中:
第一个月
然后使用“qz托盘”模块发送。
这很好用,打印机通过正确地打印所示的代码来响应。现在我的困难是实际上给它我自己的数据并更改最后10个字符串代码,我已经尝试了许多方法来正确地编码10个字符的字符串,到目前为止没有任何工作。JavaScript中有一种方法可以做到这一点吗?
编辑:
做:var barcode = "\x1B\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01" + "1234567890";
个
是我尝试的第一件事之一,结果打印机处于空闲状态,根本没有对命令做出React。事实上,我发现第一个命令1B不起作用,我必须使用String.fromCharCode(27)
发送它。管理打印条形码的完整工作命令变为:var barcode = String.fromCharCode(27) + "\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01\x41\x32\x33\x40\x41\x21\x43\x44\x5B\x5D";
个
它就像手册中一样打印数据。用转义的十六进制数据替换"1234567890"
不知何故只会破坏它,打印机什么也不做。
EDIT2,解决方案:
事实证明,当发送数据到打印机,我无意中跳过了控制代码,负责设置条形码数据类型,在这种情况下,它将是A.没有它的打印机将闲置.工作代码:String.fromCharCode(27) + "\x28\x42\x10\x00\x06\x02\x00\x0A\x00\x01" + "A" + "1234567890";
个
2条答案
按热度按时间h7appiyu1#
的十六进制值:
是下面的文本,以十六进制格式编码(或者更恰当地说,转义):
特别注意第一个字符
A
,根据维基百科:(感谢@托马斯在评论中)*
128A
(代码集A)- ASCII字符00至95(0-9、A-Z和控制代码)、特殊字符和FNC 1-4*
128B
(代码集B)- ASCII字符32到127(0-9、A-Z、a-z)、特殊字符和FNC 1-4*
128C
(代码集C)- 00-99(用单个码位编码两位数)和FNC 1A23@A!CD[]
个您可以在JavaScript中验证这一点:
字符串
所以你可以把你的例子改成这样:
型
或者让它更有可读性:
型
.或者使用QZ Tray的数组表示法:
型
**编辑:**感谢@托马斯在评论中提到应该保留
A
。我相信数据是使用Epson ESC/P2条形码格式进行格式化的,在此定义,第C-195页:https://files.support.epson.com/pdf/general/escp2ref.pdf
ctehm74n2#
在某些BarCode TrueTypeFonts中,
1234567890
的每个字体编码的正确条形码128 C可以是69 0c 22 38 4e 5a 55 6a
或i"8NZUj
。数字对将是“12”= x 0 c。一个问题是,有其他TTF编码方法具有不同的移位,因此我们可能需要
D2 2C 42 58 6E 7A 75 D3
来获得相同的输出。然而,这些软件TTF可能无法在打印机编码爱普生使用自己的不同的固件编码系统!
在Epson ESC Codes中,C(compact)连字功能可能不用于输入,因此所有范围的C字符都被用作普通数字。
因此,12不是使用TTF编码为0 C,而是在Epson ESC/POS中简单地“12”= x3132。因此,128 C可能成为学术输入,它也可能是128 A或128 B。
因此,对于Epson ESC/Pos,最简单的范围是使用数据字符集B范围,因为它包括所有的上限,下限和数字。
根据示例,以
1B 28 42 10 00 06 02 00 7D 00
开始,然后01 42
随后是人类数据
31323334353637383930
x1c 0d1x,通过https://zxing.org/w/decode?u=https%3A%2F%2Fi.stack.imgur.com%2FYb7Ih.png验证字符串
要测试压缩版本是否在C变体中使用,请尝试:
根据示例,以
1B 28 42 10 00 06 02 00 7D 00
开始,然后01 43
随后是人类数据
31323334353637383930
,通过https://zxing.org/w/decode?u=https://i.stack.imgur.com/lYBBP.png验证
型