Code 128 barcode generator

Code 128 encodes the full ASCII set in a compact linear symbol, which is why warehouses and carriers reach for it when a code has to carry letters, digits and punctuation at once.

Appearance
Size
Caption
Caption position
Caption alignment
Colours

396 × 237 px in the PNG

Size units

Specification

Character set
letters and digits
Length
from 1 to 80 characters
Check digit
not used by this symbology

Where it is used

  • Warehouse and inventory labels, where a location or item code mixes letters with digits
  • Shipping labels for carriers that do not require a GS1 prefix
  • Internal asset tracking, where the numbering scheme is yours to define

How it compares

Code 39 is simpler and more forgiving of poor print quality, but stores only uppercase letters and digits, and takes roughly 30% more width for the same data. Choose Code 128 when space matters or lowercase is required.

Common mistakes

  • Cutting the quiet zone. Code 128 needs clear margins on both sides; without them the scanner never finds the start of the symbol.
  • Printing below the minimum module width. On thermal printers a 2-dot module at 203 dpi is the practical floor.

Frequently asked questions

Does Code 128 need a check digit?
The symbology carries its own check character computed by the encoder, so you do not add one to your data. This differs from EAN and UPC, where the check digit is part of the number itself.
Can Code 128 store lowercase letters?
Yes. Code 128 covers the full ASCII range, including lowercase, punctuation and control characters. This is its main advantage over Code 39.