Barcode
Need a code that holds a URL, Wi-Fi login, or contact card instead? That is a job for the QR Code Generator. Same approach, equally private.
Proper encoding, checksums, and quiet zones, not a picture of a barcode. Download the SVG and the bar edges land exactly where a scanner expects them.
The image is yours the moment it renders. Nothing is stamped on it, nothing is gated behind an account, and no barcode ever stops working.
Product codes and internal references are encoded on your device and never uploaded. The page keeps working offline.
Code 128 vs. EAN-13: which one do you need?
Almost every barcode question comes down to this choice, and it is decided by who scans it, not by which looks better.
Code 128: for your own labels
Code 128 encodes the full printable ASCII set: letters, digits, spaces, and punctuation. It is dense, it is what shipping carriers and warehouses use, and you can put whatever you like in it: WB-INVENTORY-0042, a location, a serial number. Nobody needs to issue you a number first. If the barcode is scanned inside your own business, this is the right answer.
It is called 128 because it covers all 128 ASCII characters, using three code sets (A, B, and C) that it switches between mid-symbol. Code set C packs two digits into a single character, so long runs of numbers get noticeably shorter. This generator picks and switches the code sets for you, and adds the mandatory checksum automatically.
EAN-13: for retail checkouts
EAN-13 encodes exactly 13 digits and nothing else. It is the barcode on the back of supermarket products worldwide (the 12-digit UPC-A used in North America is the same system). The digits are not arbitrary: they begin with a company prefix issued by GS1, then your product reference, then a check digit.
That last point is the one people miss. This tool will happily render any 13-digit number as a technically perfect EAN-13, but only GS1 can allocate a number that is genuinely yours. Making one up may collide with a real product on someone else's shelf. For internal use, reach for Code 128 instead.
| Code 128 | EAN-13 | |
|---|---|---|
| Encodes | Printable ASCII: letters, digits, punctuation | Exactly 13 digits |
| Length | Any (symbol grows with the data) | Fixed |
| Registration | None, use it today | GS1 company prefix required for retail |
| Check digit | Encoded in the bars, not printed | 13th digit, printed and scanned |
| Typical use | Inventory, assets, shipping, internal labels | Products sold at a retail checkout |
Printing barcodes that actually scan
A barcode that looks fine on screen can still fail at the scanner. Three things decide it:
1. Keep the quiet zone
The blank margin either side of the symbol is not padding. It is part of the barcode. Scanners use it to find where the code begins and ends. Every download here includes it, so the fix is simply: do not crop it, and do not place text or artwork inside it.
2. Print big enough, in vector
The narrowest bar is what limits everything. Print too small and neighbouring bars blur into one. Use the SVG download for anything on paper. It scales without ever softening an edge. If you must use PNG, raise the bar width first so the exported pixels have room.
3. Contrast, and nothing clever
Dark bars on a plain light background. Not on a photo, not on a gradient, not in a pale color because it matches the packaging. Red bars in particular can disappear entirely to a red-laser scanner. And always test-scan a printed sample. Phone scanning apps are more forgiving than checkout hardware, so pass on the real device if you can.
Frequently asked questions
Which barcode type should I use?
Use Code 128 for internal purposes such as inventory labels, asset tags, shipping references, and warehouse locations, because it encodes letters, digits, and punctuation in a compact symbol. Use EAN-13 only for retail products that will be scanned at a checkout, since it encodes exactly 13 digits and those digits must come from a GS1-issued company prefix.
What is a barcode check digit?
A check digit is a final digit calculated from all the preceding digits. The scanner recalculates it and compares, so a misread or mistyped digit is rejected rather than silently accepted as a different product. This generator calculates the EAN-13 check digit for you when you enter 12 digits, and verifies it when you enter all 13. Code 128 also carries a checksum, but it is encoded in the bars rather than printed.
Can I use these barcodes on products I sell in shops?
Only if the number is yours to use. Retail EAN-13 numbers are built on a company prefix issued by GS1, the organization that administers them globally. This tool renders any valid 13-digit number correctly, but it cannot assign you a number, and inventing one risks colliding with another company's product. For barcodes used only inside your own business, no registration is needed and Code 128 is usually the better choice.
Should I download PNG or SVG?
Choose SVG for anything printed. It is a vector, so it stays perfectly sharp at any size and the bar edges land exactly where the geometry says, which is what scanners need. Choose PNG for screens, email, or tools that cannot place an SVG. If you print a PNG, generate it at a large bar width so the bars do not blur.
Why will my printed barcode not scan?
The three usual causes are size, contrast, and quiet zone. Printing too small makes narrow bars blur together, so increase the bar width and print at full resolution. Low contrast breaks it too: keep bars dark on a plain light background, and never print on a busy image. Finally, leave the empty margin either side of the symbol intact. That quiet zone is included in every download here, and cropping it off is the most common reason a barcode stops scanning.
Is my barcode data sent anywhere?
No. The barcode is encoded and drawn in your browser with JavaScript, so your product numbers and internal references are never uploaded, logged, or tracked. There is no account, no watermark, and no expiry, and the page keeps working offline once loaded.