Code 128 Generator
Create a high-density Code 128 barcode with letters, digits and symbols — ideal for logistics and inventory.
How to use in 3 steps
- 1
Enter the data
Type your text with letters, digits and symbols; Code 128 accepts all ASCII characters.
- 2
Set the size
Adjust module width, height and margin; the barcode length varies with the data.
- 3
Download
Export as PNG, SVG or PDF for a label or shelf.
Supported formats
| Format | Dimension | Note |
|---|---|---|
| EAN-13 | 1D (linear) | 12 or 13 digits |
| EAN-8 | 1D (linear) | 7 or 8 digits |
| UPC-A | 1D (linear) | 11 or 12 digits |
| UPC-E | 1D (linear) | 6, 7 or 8 digits |
| Code 128 | 1D (linear) | ASCII characters |
| Code 39 | 1D (linear) | A-Z 0-9 - . $ / + % space |
| ITF-14 | 1D (linear) | 13 or 14 digits |
| Interleaved 2 of 5 | 1D (linear) | even number of digits |
| Codabar | 1D (linear) | digits and - $ : / . + |
| GS1-128 | 1D (linear) | e.g. (01)09506000134352 |
| Data Matrix | 2D (matrix) | any data |
| GS1 DataMatrix | 2D (matrix) | e.g. (01)09506000134352 |
| PDF417 | 2D (matrix) | any data |
| Aztec Code | 2D (matrix) | any data |
| QR Code | 2D (matrix) | any data |
| GS1 QR / Digital Link | 2D (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.