4

I am using Intermec Direct Protocol to give print commands to the printer. It contains text as well as the barcode.

Printing works as expected for numbers with 12 digits. However, when I try to print numbers having digits between 13 to 18, it doesn't give any output. Any exceptions are not being thrown as well.

Here is the command that works perfectly. "BARSET" here has number whose length is 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 

However, when I change the length of BARSET to the number containing 13 digits, output doesn't come at all.

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 

This string variable is first converted into the byte array. This byte array is given to OutputStream which in turn prints the label.

Everything is working fine except when BARSET but when the given value is 13 to 18 digits, it doesn't print the label and doesn't throw any exception as well.

Nishant Tanwar
  • 383
  • 4
  • 8
  • 18

1 Answers1

0

Code 128 C requires an even number of digits. This is part of the specification. If you have to print an odd number of digits, you need to use a different symbology, e.g. Code 128 B (which is less dense, fwiw).

Marc Balmer
  • 1,780
  • 1
  • 11
  • 18