Barcode Generator
Generate Code 128, EAN-13, UPC-A, EAN-8, Code 39 and ITF-14 barcodes, sized for real printing.
Optional in Code 39, and off by default — turn it on only if your scanner is configured to expect it.
Printed size
This symbology has a fixed height in the standard, scaled with the X-dimension — retail scanners rely on it, so it is not adjustable here.
What It Does
This tool encodes a value as a linear barcode in whichever symbology you need, and then does the part most generators skip: it works out whether the barcode will actually scan at the size you are about to print it. Bar width is measured in fractions of a millimetre, and a symbol printed 20% too small reads perfectly on screen and fails on the shelf. The analysis panel gives you the printed width, the magnification against the standard, and the quiet zone you must leave blank.
When to Use It
- You are printing asset or inventory labels and need Code 128, which packs digits two to a symbol and stays compact.
- You are putting a product on a shop shelf and need a valid EAN-13 or UPC-A with a correct check digit.
- You are labelling shipping cartons and need ITF-14 at the fixed size the standard requires.
- You are working with older warehouse or laboratory equipment that only reads Code 39.
Worked Examples
5901234123457
A complete EAN-13 with its check digit. The analysis confirms the digit is correct and reports the symbol as 95 modules — every EAN-13 is exactly 95 modules regardless of the number.
SHIP-2026-0042
Mixed letters and digits in Code 128. Compare its width against the same value in Code 39 to see why Code 128 is the default for anything that has to fit a small label.
10012345678902
A shipping carton code. ITF-14 encodes digits in interleaved pairs, so the length must be even — the analysis also reminds you to add the bearer bar your label template needs.
Common Mistakes
- Cropping the quiet zone. The blank margin either side of the bars is part of the symbol, not padding — a scanner uses it to find where the code starts. Designers routinely trim it to fit a layout, and it is the most common cause of a barcode that looks perfect and will not read.
- Shrinking the barcode to fit the space. Bar width has a physical minimum, and scaling a symbol down past it produces bars too narrow for the scanner to resolve, especially on a thermal printer where ink spread closes the gaps further. The analysis panel flags this against the minimum for your chosen symbology.
- Inventing an EAN-13 or UPC-A number. Retail barcode numbers are allocated by GS1, and a made-up one will either collide with a real product or be rejected by the retailer. Use the 20-29 in-store prefixes for your own internal labelling, and buy a real prefix for anything sold elsewhere.
- Using Code 39 out of habit. It is roughly three times wider per character than Code 128 and has no lowercase. Unless a specific piece of equipment demands it, Code 128 encodes the same data in a fraction of the space.
- Printing on a coloured or dark background. Laser scanners read the contrast between bars and spaces, and a dark background destroys it — which is why the preview here is always drawn on white regardless of the page theme.
Features
How to Use
1. Choose the barcode type — Code 128 if you have a free choice, EAN-13 or UPC-A for retail products. 2. Enter the value; for EAN, UPC and ITF you can leave off the check digit and it will be calculated. 3. Set the X-dimension and bar height, watching the magnification figure in the analysis. 4. Export as SVG if your label software accepts vector, or PNG at your printer's dpi. 5. Print a test label and scan it with the actual scanner before running the batch.
Frequently Asked Questions
Embed this Barcode Generator
Paste this snippet into your site to embed the tool.
Related Tools
Everything runs in your browser — nothing you type is uploaded or stored. This tool generates barcode symbols from numbers you supply; it does not allocate or register them. Retail barcode numbers (EAN-13, UPC-A, ITF-14) must be obtained from GS1 to be globally unique, and numbers you invent may collide with existing products. Always test a printed label with the scanner that will read it before committing to a production run.