Free Barcode Generator
Create Code 128, Code 39, EAN-13, and UPC-A barcodes instantly in your browser. Type your text or number, pick a size, and download the PNG for labels, packaging, and inventory.
This free barcode generator draws Code 128, Code 39, EAN-13, and UPC-A barcodes on an HTML canvas with no libraries, validates your input for each format, and lets you download a print-ready PNG.
Code 128 encodes letters, numbers, and common symbols. UPC-A and EAN-13 accept digits only, and the check digit is added for you.
Free for your own labels and packaging. For retail barcodes (EAN-13, UPC-A), use a real GS1 number. See Terms of Use.
Barcode formats explained: Code 128 vs Code 39 vs EAN-13 vs UPC-A, and when to use each
Not all barcodes work the same way. Choosing the right format matters, because the wrong one either cannot store your data or will not scan at the register, the warehouse, or the shipping dock.
Code 128 is the workhorse of logistics and asset labels. It encodes all 128 ASCII characters, so it handles letters, numbers, and punctuation in one compact symbol. It is the best default when you are printing your own labels for inventory, asset tags, or shipping cartons, because almost every scanner made in the last twenty years reads it and it packs more data into less space than Code 39.
Code 39 is the older, simpler standard. It supports 43 characters: uppercase letters, digits, and a handful of symbols. Its wide bars and spaces make it tolerant of cheap printers and poor print quality, which is why the military and the auto industry still use it for nameplates and harsh environments. Choose Code 128 over Code 39 for new projects unless your system specifically requires Code 39.
EAN-13 and UPC-A are retail formats, and here format choice stops being a preference. EAN-13 is the global retail barcode, thirteen digits used on products sold worldwide. UPC-A is the twelve-digit North American retail barcode. You cannot invent numbers for either. Retailers require a GTIN issued through GS1, so generate the symbol only after you own the number. Use UPC-A for products sold in the United States and Canada, and EAN-13 for international or mixed retail.
Barcode generator questions
What barcode format should I use for products sold in stores?
Use UPC-A for products sold in the United States and Canada, and EAN-13 for products sold internationally. Both are retail formats that require a real GTIN number issued through GS1. Code 128 and Code 39 are for your own labels, inventory, and asset tags, not for retail packaging.
What is the difference between Code 128 and Code 39?
Code 128 encodes all 128 ASCII characters, including lowercase letters and punctuation, and packs data into a smaller symbol. Code 39 supports only 43 characters (uppercase letters, digits, and a few symbols) but tolerates cheap printers and rough labels. For new projects, Code 128 is the better default unless your system specifically requires Code 39.
Can I make up numbers for EAN-13 or UPC-A barcodes?
No. Retail barcodes must carry a GTIN number issued through GS1, the global numbering authority. Retailers reject made-up numbers, so register your products with GS1 first and then generate the symbol here with the number they assigned.
How do I download my barcode as an image?
Click Generate barcode, then click the Download PNG button. The image saves to your device at print quality with no watermark, free for commercial use on your own labels and packaging.