Free generator

Free Code 128 barcode generator

Code 128 is the usual choice for labels that stay inside your business: SKUs, shelf and bin locations, asset tags, work orders. Type letters, digits or symbols and download an SVG or a PNG for your label printer.

  • Free to use
  • No sign-up
  • No watermark
  • Personal and commercial use
  • Runs in your browser

Code 128 Internal labels

Free · runs in your browser
Barcode type
Retail products
Cartons and logistics
Internal labels
2D

Letters, digits and common symbols (printable ASCII). Best general choice for internal labels. When to use Code 128

Ready.

The preview also updates as you type.

Preview · printed sizeScale in mm

Black on white only: colored bars and backgrounds are a common cause of scan failures. Everything is drawn in your browser; nothing you type is sent anywhere.

Printed size

The width of the narrowest bar. GS1 sets no size for internal codes; pick one your scanners read comfortably. Size and print settings explained

Download for your printer

SVG downloads at the printed size above, for design and label software. PNG for a 300 dpi printer (12 dots/mm): 4 printer dots per module, so X is 0.333 mm and the bars 12.83 mm tall; print it at 100% scale. Free for personal and commercial use, with no watermark. Test a printed sample with the scanner that will read it.

  • Free to use
  • No sign-up
  • No watermark
  • Personal and commercial use
  • Runs in your browser

Code 128 at a glance

EncodesAny ASCII text; the generator takes the printable characters, space to ~
Code setsA: capitals, digits, punctuation and control codes · B: capitals, lowercase, digits, punctuation · C: digit pairs 00–99
Symbol characters11 modules each, 3 bars and 3 spaces; the stop character is 13 modules
Check characterModulo 103, always included, never printed in the text
DensityIn code set C two digits share one character, 5.5 modules per digit
Quiet zonesAt least 10X on each side (GS1’s rule for GS1-128, the same symbology)
SizeSet by your application; GS1 sizes apply only to GS1-128
SpecificationISO/IEC 15417; the GS1 General Specifications describe it in section 5.4

The details are from section 5.4 of the GS1 General Specifications, which describes Code 128 because GS1-128 is a subset of it. A Code 128 symbol that starts with FNC1 is always GS1-128; one that does not is plain Code 128, which is what you want for internal codes. Zebra’s DS2208 scanner guide, for example, lists Code 128 as enabled by default, with lengths of 1 to 55 characters.

A printed example

BIN-A12-0042: 156 modules of bars plus 10-module quiet zones, 176 modules, so 58.1 mm wide at X 0.330 mm.

What each setting does for Code 128

  • Data. Printable ASCII only (no accents or emoji), up to 80 characters; long barcodes get hard to scan. The generator picks the code sets and adds the check character.
  • X-dimension. Starts at 0.330 mm. No GS1 range applies; choose what your scanners read and your printer can make in whole dots.
  • Bar height. Starts at 12.7 mm (half an inch).
  • Quiet zone. 10 modules each side, with a warning below that.
  • Text. Optional on internal labels, but it lets people key the code in when a scan fails.

Sizes for label printers

At 203 dpi (8 dots per mm) choose X = 0.250 mm (2 dots), 0.375 mm (3 dots) or 0.500 mm (4 dots); at 300 dpi (12 dots per mm) 0.250, 0.333 or 0.417 mm. The PNG download rounds to whole dots for you and the readout shows the result. Digits-only values are much shorter: 0123456789 needs 110 modules with its quiet zones, against 176 for BIN-A12-0042.

Common mistakes

  • Using Code 128 for products sold in stores. A checkout looks for a GTIN in a UPC or EAN symbol; SKU vs UPC explains the difference.
  • Expecting the scanner to send the check character. It never does; it only verifies it.
  • Making codes longer than they need to be. Every character adds 11 modules; a shorter code prints bigger on the same label and scans faster.
  • Letters that look like digits. O and 0, I and 1 cause misreads by people; the SKU generator flags them.

Worked example: a bin label on a 2 × 1 inch label

  1. Type BIN-A12-0042. At 0.330 mm the symbol is 58.1 mm wide, too wide for a 50.8 mm label.
  2. Set X to 0.25. That is exactly 2 dots at 203 dpi and 3 at 300 dpi; the symbol is now 44.0 mm wide.
  3. Download the PNG for your printer and print at 100%. For many labels at once, use the bulk tool below.

To print a whole list as Code 128 on label sheets or a roll, use the bulk barcode generator or the label sheet tool.

Sources

  1. GS1: GS1 General Specifications Standard (Release 26.0) (accessed )
  2. ISO: ISO/IEC 15417:2007, Code 128 bar code symbology specification (amended by Amd 1:2026) (accessed )
  3. Zebra Technologies: DS2208 Digital Scanner Product Reference Guide (MN-002874-14EN Rev. A) (accessed )

More tools for labels and numbers