A barcode that looks perfect on screen can still fail at the till or the warehouse scanner. Almost always the cause is one of three things: the bars are too thin, the blank margin next to them was cropped, or the printer scaled the page. This article explains each with real numbers for common label sheets, so you can choose a sheet and settings before you print five hundred labels. The figures come from the bulk barcode generator, which fits each code to its label and reports the result.
The module: the one number that decides size
Every linear barcode is built from a smallest unit, the module (or X-dimension): the width of the narrowest bar or space. Everything else is a multiple of it. An EAN-13 is 95 modules of bars plus quiet zones of 11 modules on the left and 7 on the right: 113 modules in all.
GS1, which manages EAN and UPC, defines a nominal module of 0.330 mm at 100% magnification and allows 80% to 200% for general retail:
| Magnification | Module | EAN-13 width with quiet zones |
|---|---|---|
| 80% (minimum) | 0.264 mm | 29.8 mm |
| 100% (nominal) | 0.330 mm | 37.3 mm |
| 200% (maximum) | 0.660 mm | 74.6 mm |
Below 80% you are outside the specification and some scanners will struggle, especially with cheap thermal or inkjet printing where bars spread. ITF-14 on outer cartons is printed much larger (GS1 specifies it from 0.495 mm), because it is scanned from a distance on rough corrugated board. Code 128 and Code 39 have no single retail rule; about 0.19 mm is a common practical minimum for office laser printers and handheld scanners, and bigger is always safer.
Quiet zones are part of the barcode
The blank space either side of the bars is not decoration. A scanner finds the start of a code by seeing a long enough light area followed by the start pattern. Crop it, or put a border or text too close, and the scan fails even though every bar is perfect. Minimums in modules:
- EAN-13: 11 left, 7 right.
- UPC-A: 9 each side.
- Code 128, Code 39, ITF-14: 10 each side (ITF-14 also gets a frame of bearer bars).
That is why a code that "fits" a label once you trim the margins does not really fit. The generator always keeps quiet zones inside the label and shrinks the module instead.
Which sheets fit which codes
With a 1 mm inner margin, the largest module each label allows (capped at 0.33 mm), for an EAN-13 and for a 12-character Code 128 such as ASSET-000123 (165 modules with quiet zones):
| Sheet | Label | EAN-13 module | Code 128 module |
|---|---|---|---|
| Avery L7651 (65 per A4) | 38.1 × 21.2 mm | 0.319 mm (97%) | 0.219 mm |
| A4 grid 4 × 10 | 48.5 × 25.4 mm | 0.330 mm (100%) | 0.282 mm |
| Avery L7159 (24 per A4) | 63.5 × 33.9 mm | 0.330 mm | 0.330 mm |
| Avery 5160 (30 per Letter) | 66.7 × 25.4 mm | 0.330 mm | 0.330 mm |
| Avery 5167 (80 per Letter) | 44.5 × 12.7 mm | 0.330 mm | 0.257 mm |
Width is rarely the limit for EAN-13; height is. On a 5167 return-address label the bars are only 7.4 mm tall after the digits, a third of the 22.85 mm GS1 nominal for EAN-13. GS1 advises against such "truncated" symbols for retail because they are harder to scan at an angle. For products sold in shops, a 38 × 21 mm label or larger is the practical minimum; for internal asset tags with Code 128, short values keep the bars wider: every extra character costs 11 modules.
Printing so the labels line up
- Print at 100% / Actual size. "Fit to page", the default in many PDF viewers, shrinks the page by a few percent. On a 65-label sheet that puts the bottom row several millimetres off and shrinks every module too.
- Use the right paper setting. A4 sheets printed on a printer set to Letter (or the reverse) are scaled or shifted.
- Calibrate once. Print one page with label outlines on plain paper, hold it against a label sheet in front of a window, measure the drift, and enter it as an offset. Printers are consistent with themselves, so the same offset works next time.
- Use up partial sheets. Skip the positions already used instead of feeding a half sheet in a different orientation.
- Black on white, no colour tricks. Red bars disappear under red scanner light, and light bars on a dark background are not read by many scanners.
Common mistakes
- Retyping check digits by hand. Let the generator compute the 13th EAN digit; a wrong check digit is rejected at the till. The row report shows any row whose last digit does not match.
- Scaling an image to fit. Stretching a PNG makes uneven bars. Use vector output (the PDF or SVG) for print, and PNG only at a whole number of pixels per module.
- Crowding the label. A logo or caption that eats into the quiet zone breaks scanning; keep text below the bars.
- Testing with a phone app only. Phone cameras are forgiving. Test with the scanner that will actually be used, at the distance it will be used.
- Making up GTINs. EAN-13 numbers for products sold in shops must come from your GS1 member prefix; internal codes belong in Code 128.
Try it
Paste your SKU list into the bulk barcode generator, pick your label sheet and read the size line: it shows the module width and magnification for your labels before you print. For a single code to place in a design, use the barcode generator.