Troubleshooting
The bar code prints but will not scan
A bar code that looks right and reads as nothing usually fails on one of four things: quiet zone, module width, print quality, or a symbology the scanner was never told to read.
Quiet zone first
Every linear symbology needs clear space either side of the bars, and a scanner that does not find it cannot tell where the symbol begins. The requirement is usually stated as a multiple of the narrow module width — ten times it is a common figure — which means a wider bar code needs a wider margin, not the same one.
^XA
^PW812
^LL1218
^BY3,3,120
^FO5,60^BCN,120,Y,N,N^FD0123456789^FS
^XZThis is the failure that survives a visual check, because the bar code itself is perfect — it is the white space around it that is missing. It is also the one that appears after a layout change nobody thought was risky, such as moving a field left to make room.
Module width and the scanner's resolution
^BY sets the narrow module width in dots, and that is the smallest feature the scanner has to resolve. At 203 dpi a module width of 2 is about 0.25 mm; push it to 1 and you are asking the scanner to resolve a tenth of a millimetre through whatever the label has been through since it was printed.
Going up one module width is the cheapest fix available if the label has room. If it does not have room, the symbology is usually the thing to change: Code 128 encodes the same data in roughly half the width of Code 39.
Print quality: darkness and speed together
Too little heat leaves grey bars with soft edges. Too much spreads the ink sideways and closes the gaps between them. Both scan badly, and only one of them looks faint — an over-dark bar code looks emphatically printed and reads as nothing.
- 1Print the same label at a lower speed. If it scans, the problem was speed, not heat — the printhead had too little time on each dot row.
- 2If it still fails, change darkness by a few steps at a time and print again. Small steps: the usable window is narrower than it looks.
- 3Look at the bars under magnification. Soft grey edges mean more heat; bars that have grown into each other mean less.
Or the scanner was never told to read it
Scanners ship with the common symbologies enabled and the rest switched off, because enabling everything makes misreads more likely. Code 11, Code 49, MSI and Plessey are all commonly disabled by default — a label using one of them scans nowhere until the reader is configured.
The quick test is to read the same symbol with a phone. If a general-purpose app reads it and the warehouse scanner does not, the label is fine and the scanner's configuration is what needs changing.
Check the bar code in the validator
The field above with its quiet zone eaten, loaded and ready. The validator measures the symbol with the same table the renderer draws it with.
Check the bar code in the validatorCommon questions
- How much quiet zone does a bar code need?
- It depends on the symbology, and it is expressed relative to the narrow module width rather than in dots. Ten module widths is a common minimum for the Code 39 family; check the standard for the symbology you are using, and remember that raising ^BY raises the requirement too.
- The preview draws the bar code fine. Why does the printed one fail?
- Because a preview draws at exact dot dimensions with no ink spread, no speed and no media. It catches quiet zones and module widths; it cannot catch a print that came out too dark or too fast.
- Should I raise darkness to make a bar code scan?
- Try lowering print speed first. The two interact, and darkness is the one that fails in both directions — pushing it up on an already-dark label closes the gaps between bars and makes the symbol worse.