Code 128 barcode generator

Enter a value to enable download.

Your barcode preview appears here after valid input.

No code generated.

Size and human-readable text

Exports: 300 pixels per inch. Module 4–6 px (0.339–0.508 mm); bar height 280–600 px. Quiet zones: at least 12 modules each side. Print at 100% scale; test before use. Retail/ISBN human-readable digits stay on.

Make a batch from a list or CSV

Code 128 is a variable-length linear barcode format for numeric and character data. It is useful when the destination system expects a Code 128 identifier, such as an internal stock or asset reference.

The format does not define what your identifier means. A scanner can read the characters while the receiving software still rejects them because no matching record exists.

What Code 128 can represent

Across its code sets, Code 128 can represent the 128 ASCII characters. Sets A and B cover different character ranges; set C encodes numeric pairs efficiently. The format name does not mean that every barcode contains 128 characters or accepts arbitrary Unicode text.

This build accepts 1–80 printable ASCII characters with automatic B/C switching. Control-character entry and arbitrary Unicode are not supported. The governing specification is ISO/IEC 15417, with a 2026 amendment.

The checksum belongs to the encoder

Code 128 requires a modulo-103 symbol check character. It is calculated from the encoded symbols, including their positions and code-set changes. It is not the same as a UPC/EAN check digit, and you should not append a guessed digit to your identifier.

The encoder adds the start, check and stop symbols as part of the barcode. A longer value may need a wider label even if the value is valid. Do not shrink it until its narrowest bars become unreliable on the target printer.

Code 128 is not automatically GS1-128

GS1-128 uses the Code 128 symbology with a specific FNC1 position and GS1 Application Identifiers. It can represent structured data such as an identifier, lot or date according to GS1 rules. Ordinary text that happens to contain parentheses is not enough to create that structure.

For simpler uppercase-only systems, compare Code 39. For retail product identifiers, use the required EAN/UPC format instead of choosing a barcode solely because it fits on the screen.

Method and transparency

Last updated: 6 November 2026. Local technical preview only.

About this tool · Browser processing and privacy · Contact