4

我正在使用 Intermec Direct Protocol 向打印机发出打印命令。它包含文本和条形码。

对于 12 位数字,打印工作正常。但是,当我尝试打印数字在 13 到 18 之间的数字时,它不会给出任何输出。也不会抛出任何异常。

这是完美运行的命令。"BARSET" 这里有长度为 20 的数字

INPUT ON: CLIP ON: CLIP BARCODE ON:
. CLL:
. PP23,1184: AN7:
. PP23,1184: AN7:
. PP23,1184: AN7: 
. DIR1: NASC 1252:
. FT 'Swiss 721 BT':
. FONTSIZE 8: FONTSLANT 0:
. FONTSIZE 36: PP104,330
. BARSET 'CODE128C',2,1,4,305: PB CHR$(128);\”00100280283000550596\":
. PF1\r\n 

但是,当我将 BARSET 的长度更改为包含 13 位的数字时,根本不会输出。

INPUT ON: CLIP ON: CLIP BARCODE ON: 
. CLL: 
. PP23,1184: AN7: 
. DIR1: NASC 1252: 
. FT 'Swiss 721 BT': 
. FONTSIZE 8: FONTSLANT 0: 
. FONTSIZE 36: PP104,330: 
. BARSET 'CODE128C',2,1,4,305: PB CHR$(128);\”1234567891234\": 
. PF1\r\n 

这个字符串变量首先被转换成字节数组。这个字节数组被提供给 OutputStream,后者又打印标签。

一切正常,除了当 BARSET 但给定值为 13 到 18 位时,它不会打印标签,也不会抛出任何异常。

4

1 回答 1

0

代码 128 C 需要偶数位数。这是规范的一部分。如果您必须打印奇数位数,则需要使用不同的符号系统,例如 Code 128 B(密度较低,fwiw)。

于 2016-12-31T12:32:37.060 回答