Summary
This problem article explains the situation where a barcode printed with a Zebra printer inserts and extra underscore + 1 (i.e. _1) value at the start and sometimes in the middle of the data string.
Situation and Symptoms
- ZPL code sent to printer containing GS1 barcoding
- Scan of data shows extra “_1” characters at the beginning and sometimes middle of the data string
- Same data encoded in the barcode with the extra _1 characters reads correctly in other (newer) Zebra printers
- Drivers are sending ZPL code into the printer
Explanation
The GS1 barcode often contains hidden data elements that signal to the reader the type of data scanned when a particular data string starts. The FNC1 value, embedded in the barcode, signals the start of a variable length GS1 data string. Additional values are often inserted after the FNC1 value to specify what the following data string represents. These are called “application identifiers” and this allows the barcode to string together different data strings into one single barcode (e.g. Product GTIN number + Date Code + Serial Number).
Older Zebra printers do not know how to insert GS1 FNC1 values into 2D barcode. Thus when ZPL code is sent to the older printer calling for the FNC1, it misreads the FNC1 ZPL coding (i.e. hex 5F followed by number 1 aka “_5F1”) and, instead, literally prints the ASCII characters “_1”.
Note: the initial underscore character in the _5F1 example above is the default data marker that tells the printer that the next two digits (i.e. 5F) are to be read as hex values and not as ASCII. This can be confusing since, coincidentally, the hex value of 5F happens to also be an underscore character. Thus, the hex value default data marker and the hex value of the FNC flag are both underscore characters.
The newer Zebra printers know how to embed the GS1 FNC1 flags and application identifiers into the 2D code. When the newer printer sees the “_5F1” in the ZPL code it knows to insert the correct black/white barcode elements into the code to render the FNC1 flag.
Solution
If the Zebra printer cannot accept the FNC1 ZPL value, the firmware must be upgraded or a new printer may need to be purchased.