Barcodian

Code 128 Generator

Create a high-density Code 128 barcode with letters, digits and symbols — ideal for logistics and inventory.

Share

How to use in 3 steps

  1. 1

    Enter the data

    Type your text with letters, digits and symbols; Code 128 accepts all ASCII characters.

  2. 2

    Set the size

    Adjust module width, height and margin; the barcode length varies with the data.

  3. 3

    Download

    Export as PNG, SVG or PDF for a label or shelf.

Supported formats

FormatDimensionNote
EAN-131D (linear)12 or 13 digits
EAN-81D (linear)7 or 8 digits
UPC-A1D (linear)11 or 12 digits
UPC-E1D (linear)6, 7 or 8 digits
Code 1281D (linear)ASCII characters
Code 391D (linear)A-Z 0-9 - . $ / + % space
ITF-141D (linear)13 or 14 digits
Interleaved 2 of 51D (linear)even number of digits
Codabar1D (linear)digits and - $ : / . +
GS1-1281D (linear)e.g. (01)09506000134352
Data Matrix2D (matrix)any data
GS1 DataMatrix2D (matrix)e.g. (01)09506000134352
PDF4172D (matrix)any data
Aztec Code2D (matrix)any data
QR Code2D (matrix)any data
GS1 QR / Digital Link2D (matrix)GS1 Digital Link URL or (01)...

Example input / output

Input

PKG-2026-000517

Output

Code 128 · 15 chars · mixed Set B/C

Technical notes

Code 128 is a high-density 1D symbology that can encode all 128 ASCII characters (letters, digits, punctuation, control characters). It's ideal for logistics, warehousing, inventory and internal tracking; it isn't used at retail POS, where EAN/UPC are expected.

Code 128 has three subsets: Set A (control characters + uppercase), Set B (all printable ASCII) and Set C (digit pairs only). The tool switches between subsets automatically to keep the data as short as possible; long digit strings encode two digits per module with Set C and noticeably shorten the barcode.

A modulo-10 (sometimes called mod-103) symbol check character is also embedded in the barcode; it lets the scanner verify the read and does not appear in the human-readable value. That's why Code 128 needs no mandatory human-entered check digit like EAN/UPC.

As the data grows the barcode physically widens; very long values may not fit a narrow label. Non-ASCII letters such as ş, ğ, ç, ı cannot be encoded with standard Code 128. Check your value first with the Code 128 validator, and for structured data like GTIN + lot see the GS1-128 parser.

Frequently asked questions

All 128 ASCII characters: A-Z, a-z, 0-9, punctuation and space. But non-ASCII letters like ş, ğ, ç, ı are not supported.