When a scanner can't read a printed barcode, check four things in this order: bar width (module width, X-dimension) → left and right quiet zone → print density → bar direction. You can check the first two as numbers on the GoodLabel Designer screen. For the last two, print 3–4 copies of the same label, changing only one condition, and compare them to find the cause.

Checklist for 6 symptoms

SymptomCheck firstWhat to change in the designer
Only one scanner fails; other models read itThe bars are narrower than that scanner's minimum readable widthRaise Barcode width in the Properties panel by one step (one dot)
Only labels with text or lines next to the barcode failNot enough left and right quiet zoneMove objects, or increase the left and right quiet zone on the Advanced settings tab of the Properties panel
The white gaps between bars look filled inToo much density has thickened the barsLower Density in the Print window by 2–3 steps
Bars are gray or have empty spots here and thereDensity too low, or the ribbon doesn't match the label materialRaise density; for thermal transfer, check the ribbon grade
White lines inside the bars run in the direction the media comes outOne or more failed heating dots on the headTurn the barcode 90° with Rotate in the Properties panel
Bar edges are jagged and blurredPrint as image + driver ditheringChange the driver's dithering, or turn off Print as image

Bar width (X-dimension) and printer dots at 203 and 300dpi

Direct thermal and thermal transfer printers build bars only from whole dots, so a bar width is always a whole multiple of the dot size. At 203dpi one dot is 0.125mm (about 4.9mil); at 300dpi it is 0.085mm (about 3.3mil).

DotsBar width at 203dpiBar width at 300dpi
1 dot0.125mm0.085mm
2 dots0.250mm0.169mm
3 dots0.375mm0.254mm
4 dots0.500mm0.339mm

Compare this table with the minimum readable width in the scanner's spec sheet. The Zebra DS2208 reads Code 128 down to 4.0mil (about 0.102mm), so a CODE128 printed with 1-dot bars at 300dpi falls below that limit. In the designer, CODE128 bar width is set in 1-dot steps starting from 1 dot, and a newly added CODE128 starts at 2 dots at 203dpi and 3 dots at 300dpi.

Going from 2 to 3 dots also makes the whole barcode 1.5 times longer, so check that it still fits within the label width together with the left and right quiet zones.

Left and right quiet zone multiples

The quiet zone is the width that must stay blank at each end of the barcode, and it is set as a multiple of the bar width X. The mm values in the table are X multiplied by that multiple.

BarcodeLeftRightLeft · right at X = 0.25mmDesigner default quiet zone (item name)
GS1-12810X10X2.5mm · 2.5mmGS1_128(NEW) 10X · 10X
EAN-1311X7X2.75mm · 1.75mmEAN13(NEW) 11X · 7X
UPC-A9X9X2.25mm · 2.25mmUPC 9X · 9X
EAN-87X7X1.75mm · 1.75mmEAN8 7X · 7X
GS1 DataMatrix1X on all four sides0.25mmGS1DATAMATRIX(NEW) 1-cell quiet zone around the symbol

Barcodes that have an Advanced settings tab in the Properties panel, such as the (NEW) items, UPC and EAN8, let you raise or lower the quiet zone as a number in X units. It can go down to 0, so if you reduced it, set it back to at least the standard. For items with no quiet zone field, such as CODE128, keep the quiet zone clear by positioning objects so that no text, table border or logo falls inside it.

The label edge also counts toward the quiet zone. If the barcode sits right at the edge of the label, the rest of its quiet zone lands on the package surface outside the label, and if that surface is dark or patterned, the scanner can't find the end of the barcode. The Non-printable area (1.5mm by default) is shown as gray shading along the left and right edges of the editing area. If any part of the barcode's end touches it, the shading and its border turn red, so move the barcode out of the shading.

Density and print quality grades A–F

Barcode verification grades barcodes from A to F (4 to 0 as numbers) under ISO/IEC 15416. GS1 requires at least grade 1.5 (C) for EAN/UPC barcodes and recommends 2.5 (B) or higher at the time of printing. Of the graded parameters, the two tied directly to density are symbol contrast and bar width deviation.

  • Raising head temperature (density) makes bars darker but also thicker, so the narrow white gaps of 1–2 dots at 203dpi fill in first.
  • Low density reduces the reflectance difference between bars and background, which lowers contrast. The Honeywell Xenon 1950g requires a reflectance difference of at least 15% to read.
  • In thermal transfer, if the ribbon ink doesn't stick well to the label surface, empty dots appear inside the bars. In that case, change to the ribbon grade that suits the material before touching density.

The default density is ZPL 21, TSPL 11 and EZPL 13. Print 3 labels at −3, 0 and +3 from the default, scan all of them, and settle on the middle value of the range that reads. The range for each command language is in a table in the Printing chapter.

Bar direction and one failed heating dot

When one heating dot on the head dies, a single white line runs in the direction the media comes out. If the bars stand parallel to the media feed direction, that line splits one bar lengthwise and changes its width. If you turn the barcode 90° so the bars lie parallel to the head, the line crosses all the bars, and the parts above and below the line stay intact.

In the designer's Properties panel, click Left or Right under Rotate to turn the barcode 90° at a time, and click Reset to return it to the original. After rotating, check that the barcode length fits within the label height in mm. The white line itself goes away only by cleaning or replacing the head, so treat rotation as a workaround until the head is fixed.

Two settings: Print as image and driver dithering

On ZPL, TSPL and EZPL printers, checking Print as image under Printer settings → Print options makes the Windows driver, not the designer, turn the image into dots. If dithering is on in the driver, gray dot patterns mix into the bar edges. As the Dithering settings guide in the Print window says, set the dithering option on the Zebra driver's Graphics Options tab to Clipart, and for other drivers set dithering on the Graphics tab to None (N). When you clear the check box, printers using these 3 command languages go back to RAW printing.