Free Barcode Generator EAN & Code 128

Create EAN-13, EAN-8, UPC-A, ITF-14 and Code 128 barcodes with automatically calculated check digits. Download a high-resolution PNG or a print-ready SVG.
Everything runs in your browser, so numbers are never uploaded.

🔒 100% local processing · numbers never leave your device

① Type and content

Barcode type
Content

② Size and appearance

Module width (mm)
Bar height (mm)
18
Human readable text
Text size
Quiet zone
Output resolution

③ Preview and download

Enter a number to generate the barcode instantly
Total modules — Width — Height — Check digit —
TypeDigitsTypical use
EAN-1312 + checkRetail products worldwide
EAN-87 + checkSmall packs such as gum or cosmetics
UPC-A11 + checkNorth American retail, an EAN-13 starting with 0
ITF-1413 + checkCartons and pallets, logistics
Code 1281-48 charsInternal SKUs and serial numbers

Why use this tool

Runs entirely in the front end. No sign-up, and your product codes are never collected.

🔒

Numbers never leave your device

Encoding and drawing happen entirely in your browser. Product codes and SKUs are never uploaded to any server and nothing is logged.

🧮

Check digits calculated for you

EAN-13, EAN-8, UPC-A and ITF-14 check digits are added automatically. Paste a complete number and the check digit is verified on the spot.

📐

Print-grade size control

Set the module width in millimetres, with 0.33 mm as the EAN 100% magnification default. Export 300 or 600 DPI PNG, or hand a vector SVG to your printer.

🧾

Five common formats

EAN-13, EAN-8 and UPC-A for retail products, ITF-14 for cartons and Code 128 for internal SKUs. All encoded in the front end with no external dependencies.

⚠️

GS1 rules made clear

The tool reminds you that retail numbers must be registered with GS1, so you do not print thousands of labels before discovering the till cannot find the product.

Frequently asked questions

Can I just make up an EAN-13 number and print it on my product?

Technically yes, but not for retail. EAN-13 and UPC numbers are allocated by GS1, one number per product. A made-up barcode will scan, but the till reports it as unknown and supermarkets and marketplaces will not accept it. Apply to GS1 Hong Kong for a valid GTIN, then use this tool to output artwork for the number you were issued.

Does Code 128 need to be registered?

No. Code 128 has no global registry, so it suits internal SKUs, serial numbers, asset tags and batch numbers. As long as your company is internally consistent, you can use it freely.

What module width should I choose?

For ordinary retail products use 0.33 mm, which is the EAN 100% magnification and the most common print size. Use 0.25 mm only when the label area is very tight, as very small bars strain older scanners. For long range or fast scanning, such as in a warehouse, choose 0.5 or 0.66 mm.

Why is there blank space either side of the barcode?

That blank area is the quiet zone and it is part of the barcode. Without it a scanner cannot tell where the barcode starts and may fail to read it. The standard requires at least 10 modules on each side, which the tool adds by default. Only choose no quiet zone when you know the surrounding artwork is white.

Should I download the PNG or the SVG?

Use SVG for a print shop or anywhere the barcode will be enlarged, because it is vector and stays sharp at any size. Use PNG for Word, Excel, web pages or label tools: the correct DPI is written into the file so the physical size is preserved.

Why must ITF-14 have 14 digits?

ITF-14 is the carton barcode (GTIN-14) with a fixed structure of 13 data digits plus one check digit. Enter 13 digits and the check digit is added. The total must be an even number of digits, which is exactly why it is 14.

Do you record the product codes I enter?

No. Encoding happens inside your browser and our server only delivers the static page. You can confirm this in your browser developer tools: no request is made while you type.

Need barcodes for a whole product catalogue?

Typing hundreds of SKUs by hand invites mistakes. We can read them straight from your spreadsheet or ERP, generate the barcodes and lay them into a label sheet in one pass.