Make EAN-13, UPC, Code 128 and 7 more barcodes; download PNG/SVG or print labels
Updated October 2026
The Barcode Generator creates standard, scannable 1D barcodes in ten formats: EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, ITF-14, Codabar, MSI and Pharmacode. Choose a format — each one shows what it is used for — type your number or text, and the barcode redraws instantly. For EAN, UPC and ITF it checks the GS1 check digit, offers to add it when you type a number one digit short, and warns clearly when a number can't be valid. You control bar width, height, text size, colours and the quiet zone, then download a sharp PNG, a vector SVG for print, copy the image to paste into a document, or print a sheet of up to 60 labels. It all runs in your browser.
Barcodes are drawn with JsBarcode, a widely used open-source encoder, as an SVG so the bars land on exact pixel boundaries. Before drawing, the data is validated against the rules of the chosen symbology — digits only and exact length for EAN/UPC/ITF, the Code 39 character set, Pharmacode's 3–131070 range. Check digits for EAN-13, EAN-8, UPC-A and ITF-14 use the GS1 modulo-10 method: starting from the rightmost data digit, digits are weighted 3, 1, 3, 1…; the check digit is the number that brings the weighted sum up to the next multiple of 10. PNG export renders the SVG at three times its on-screen size with smoothing switched off, so every bar edge stays crisp for scanners.
| Format | Holds | Typical use |
|---|---|---|
| EAN-13 | 13 digits (incl. check digit) | Retail products worldwide; Indian brands use GS1 prefix 890 |
| UPC-A | 12 digits | Retail products in the US and Canada |
| EAN-8 / UPC-E | 8 digits | Small packs where a full barcode will not fit |
| Code 128 | Any letters, digits, symbols | Shipping labels, inventory, order numbers |
| Code 39 | A–Z, 0–9 and - . $ / + % space | ID badges, asset tags, older industrial scanners |
| ITF-14 | 14 digits | Cartons and outer cases of retail products |
| Codabar | Digits and - $ : / . + | Libraries, blood banks, courier slips |
A barcode only encodes a number. For products sold in shops, the number itself must be licensed from GS1 so it is unique worldwide; making the image is the easy part.
Supermarkets, Amazon and Flipkart reject products whose EAN numbers were not issued by GS1. In India that is GS1 India, which assigns your company a prefix starting with 890; you then number your products under that prefix and generate the barcode images yourself — which is exactly what this tool is for.
For anything that never leaves your own business — stock-keeping, asset tags, internal parcel tracking — you do not need GS1 at all. Use Code 128 with your own codes, such as SKU-1042 or ORDER-2026-7781.
Print at 100% scale ("actual size"), never "fit to page", because shrinking bars below the minimum width makes them unreadable. Keep the quiet zone — the blank margin either side — at least ten times the narrowest bar; scanners need it to find where the code starts. Dark bars on a white or light background scan best; red bars are invisible to many laser scanners. Use the SVG file for professional printing, and always test-scan one printed label with a phone before printing a whole roll.
For products sold in shops, use EAN-13 (or UPC-A in the US and Canada) — but the number itself must be issued to your company by GS1 (GS1 India for Indian brands, prefix 890) for retailers to accept it. For your own stock, shipping, assets or ID cards, use Code 128: it holds letters and numbers and every scanner reads it. Use ITF-14 for cartons and outer cases.
EAN, UPC and ITF barcodes end with a check digit calculated from the other digits, so a scanner can detect a misread. If you type a number one digit short, Clacify offers to add the correct check digit automatically using the GS1 modulo-10 rule.
Use SVG for printing on packaging and labels: it is a vector file, so the bars stay perfectly sharp at any size. Use PNG for documents, spreadsheets and websites. Always print at 100% scale and test-scan before printing a batch.