Barcode Generator
Make scannable Code 128, EAN-13, UPC-A, EAN-8, Code 39 or ITF barcodes, one at a time or in bulk, and download them as SVG or PNG.
- Free, no account
- No watermark
- No usage limit
About the Barcode Generator
A barcode generator has one job that actually matters, and drawing stripes isn't it, because anything can draw stripes. The job is not handing you a code that dies at the scanner after you've printed five thousand of them, and most free generators skip that part entirely. They'll let you pick red bars, crop the margin down to nothing, or shrink the whole thing below what a scanner can resolve, then hand you a clean-looking image that will never beep. This one checks the two things that actually break a scan and warns you before the code ends up on paper.
What it makes: real, standards-compliant barcodes in six formats, Code 128, EAN-13, UPC-A, EAN-8, Code 39, and ITF, with the check digit already worked out and the preview redrawing as you type. Grab an SVG or PNG, copy the image, or paste a column of SKUs and get them back as a named ZIP. It all runs in your browser, so no part code or order number gets uploaded.
How to use
- Pick the barcode type. Leave it on Code 128 for your own labels, boxes, and inventory. If a store said the product needs a retail code, choose EAN-13 or UPC-A (read the GS1 note below first). The hint under the picker says what each one is for.
- Type your data. A SKU, a serial, an order ID. Retail formats take digits only, Code 128 and Code 39 take letters too. Not sure? Hit "Use example" for a valid sample.
- Set bar width and height. Bar width is the narrowest bar, the X dimension. Wider bars read from further away, taller bars forgive a crooked scan angle.
- Leave the quiet zone generous. That blank margin on each side does more for scan reliability than anything else here. More on why below.
- Only touch the colors if you have to. Black on white is what you want almost always. Pick a combination that won't scan and the tool tells you before you print it.
- Download. SVG for print, PNG for a document or email, or the copy button for your clipboard.
The preview is live, so what you see is what saves. For a pile of codes at once, open the bulk panel under the tool.
The two things that actually kill a scan
Nearly every scan failure comes down to margin and contrast, and this tool guards both.
The quiet zone. The blank space on either side of the bars isn't padding you can trim. The scanner uses it to find where the code starts and stops. Kill it and it can't tell your first bar from the box edge or the text next to it, so it misreads or refuses. The rule of thumb for Code 128 is a clear margin at least ten times your narrowest bar on each side. This tool measures the quiet zone in modules, meaning bar-widths, so you set it once and it stays correct at any bar width. Cropping it to squeeze a code onto a tight label is the most common self-inflicted failure there is. Give it room, the margin is part of the barcode, not wasted space around it.
Contrast, and the red trap. Scanners read the difference between dark bars and light gaps, so black on white is ideal, and red is where people most often come unstuck. A lot of older red-laser scanners literally cannot see red bars, so red on red reads as blank. The color pickers are here for when a brand genuinely needs a tinted code, but the second your contrast drops too low, or you flip to light bars on a dark background, the tool flags it. Most generators let you make that mistake and say nothing.
One more habit. Before a big run, print a single code and scan it with the actual device that'll be used in the field, not just your phone. Phone apps are forgiving, a cheap warehouse scanner is not, and you want to find that out on label one. And if you resize a finished code, only change the height, since stretching the width warps the ratios the scanner reads.
Which barcode type do you actually need
"Barcode" isn't one thing. It's a family of encodings called symbologies, and they don't swap in for each other. Pick the wrong one and a scanner won't read it or a store rejects it.
| Type | Encodes | Check digit | Reach for it when |
|---|---|---|---|
| Code 128 | Letters, numbers, symbols | Always, automatic | Shipping, inventory, anything you print yourself |
| EAN-13 | Digits only | Automatic | Retail products, international |
| UPC-A | Digits only | Automatic | Retail products, North America |
| EAN-8 | Digits only | Automatic | Small retail items, gum, cosmetics |
| Code 39 | Uppercase and numbers | Optional, not added | Legacy defense, automotive, healthcare systems |
| ITF | Digits only (even count) | Optional, not added | Shipping cartons and cases |
Code 128 is the default and the right answer for almost anything internal. Letters and numbers, compact, a mandatory check character, no registration or governing body. Feed it a long run of pure digits and it quietly switches to its densest mode, so a serial takes about half the width.
The retail codes come with a catch worth stating plainly: those numbers are not yours to invent. A barcode a store will ring up needs a globally unique number registered with GS1, so two products never collide. This tool draws the bars from any digits and computes the check digit, but only GS1 can assign numbers stores accept (paste a full code and it verifies the existing one). ITF is for shipping cartons and wants an even digit count, so an odd one gets a zero padded on the front. Code 39 only matters when a legacy system already speaks it.
Making a batch without hitting a paywall
One code at a time is fine for a label or two, but running a spreadsheet of two hundred SKUs one by one is misery, which is the job the bulk panel exists for.
Paste one value per line, a column copied straight from a spreadsheet works, pick SVG or PNG, and the whole set downloads as a single ZIP. Each file is named after its value, so SKU-1042 lands as SKU-1042.svg, ready for a label template or a mail merge. Up to five hundred in one pass, all sharing the type, size, and colors above. A line that isn't valid, say you're on EAN-13 and a row has ten digits, gets skipped with a count instead of becoming a broken code you don't notice. And it runs on your own machine, so a column of confidential part numbers never leaves it. Plenty of free generators do one at a time or lock the batch behind a paid plan. Here it's just part of the tool.
Frequently asked questions
Why did the tool add a digit I never typed?
On the retail formats, the last digit is a checksum calculated from the digits before it, and you never type it. When a scanner reads the code it re-runs the same math, so a misread gets rejected instead of ringing up the wrong item. If you paste a full retail number and the tool says the check digit looks wrong, believe it, a digit somewhere is off. Far cheaper to catch now than after the labels are printed.
Can I make a barcode someone scans with their phone?
Not with these. A 1D barcode is built for dedicated scanner hardware and holds a short identifier. For something a phone camera opens, a web page, a contact card, a Wi-Fi login, you want a 2D code, and there's a QR Code Generator here for that.
SVG or PNG, which should I download?
SVG for anything you're printing or resizing. It's vector, math rather than pixels, so the bar edges stay sharp at any size, exactly what a scanner needs. PNG when you just want a plain image for a document or an email. The PNG here is rendered at triple resolution so it holds up, but when in doubt take the SVG, it'll never go blurry.
Can I turn off the text under the bars?
Yes, there's a toggle. That line is the human-readable interpretation, the same data the bars carry, printed so a person can key it in if a scan fails. The side margins are a different thing, that's the quiet zone, and turning those off is one of the fastest ways to stop a barcode working.
Does it work offline, and is anything sent to a server?
All the encoding tables are bundled into the page, so once it has loaded you can pull the network and it keeps working. Nothing you type is uploaded, logged, or stored, whether you make one code or five hundred. Barcode data tends to be sensitive, order numbers, serials, part codes, so keeping it on your own machine is the point.
How much data can one barcode hold?
The input caps at 120 characters. Code 128 and Code 39 accept any length up to that, but a longer string makes a wider, denser code that needs more print space and a better scanner. The retail formats are fixed, thirteen digits for EAN-13, twelve for UPC-A, eight for EAN-8. If a long code won't scan, shortening the data or widening the bars usually sorts it.