~/online-free-barcode-generator ☕ Support me apps ← back to terminal

Free Barcode Generator — EAN-13, UPC, Code 128, GS1-128, Data Matrix_

30+ symbologies with automatic check digits, batch generation and printable label sheets. Export PNG · SVG · JPG up to 600 dpi. Everything runs in your browser — nothing is uploaded, nothing is stored.

🔒 Nothing leaves your device. Product numbers, batch codes and asset tags are encoded locally in this tab — there is no upload and no account.
▸ Symbology & dataengine: built-in
Ready.
▸ Appearance
Scanners read contrast, and most read in the red spectrum — black bars on a white background is the only combination that is safe everywhere. Coloured bars are fine for mock-ups, risky in production.
▸ Preview
Image size
Printed at 300 dpi
X-dimension
Quiet zone
For print, take the SVG — it stays sharp at any size. Raster exports are fine for screens, documents and email.
▸ Recent
Your last ten barcodes appear here, stored only in this browser.
▸ Batch input0 rows
Batch uses the symbology and appearance set on the Single barcode tab. Rows that break the format's rules are listed with the reason and skipped — the rest still render.
▸ Label sheetprint at 100% scale
In the print dialog set scale to 100% and turn off “fit to page”, or every barcode on the sheet is silently resized and may fall below its minimum X-dimension.

Free barcode generator — 30+ symbologies, check digits, batch and label sheets

This is a complete barcode maker that runs in your browser. It covers the retail family (EAN-13, EAN-8, UPC-A, UPC-E and the EAN-5 / EAN-2 add-ons), the logistics workhorses (Code 128, GS1-128, ITF-14, Code 39, Code 93, Codabar, MSI), pharmaceutical codes (Pharmacode, Code 32), the GS1 DataBar family, the 2D codes (Data Matrix, GS1 Data Matrix, QR, PDF417, Aztec) and the four-state postal symbologies used by USPS, Royal Mail, PostNL, Australia Post and Japan Post.

Check digits are calculated and verified for you, so a 12-digit product number becomes a valid EAN-13 without you reaching for a calculator. Beyond single codes there is a batch mode that turns a pasted list into hundreds of barcodes and hands them back as a ZIP, and a label sheet mode that lays them out on A4 or Letter for printing. Exports are PNG, SVG (vector, for print) and JPG, at up to 600 dpi.

Everything happens in this tab. Product numbers, batch codes, patient identifiers and asset tags are encoded on your own device — there is no upload, no account, no watermark and no daily limit, which makes it a practical alternative to the cloud barcode services when the data is confidential.

Which symbology does what

SymbologyEncodesLengthCheck digitTypical use
EAN-13Digits13Yes, mandatoryRetail products worldwide
UPC-ADigits12Yes, mandatoryRetail in the US and Canada
EAN-8Digits8Yes, mandatorySmall retail packs
UPC-EDigits6–8Yes, mandatoryVery small retail items
ITF-14Digits14Yes, mandatoryShipping cartons and cases
Code 128Full ASCIIVariableYes, built inLogistics, asset tags, internal labels
GS1-128ASCII + AIsVariableYes, built inPallet and case labels with batch, expiry, serial
Code 39Capitals, digits, - . $ / + %VariableOptional (mod 43)Legacy industrial and government systems
Code 93Full ASCIIVariableYes, two charactersDenser replacement for Code 39
CodabarDigits, - $ : / . +VariableOptionalLibraries, blood banks, photo labs
ITFDigitsEven numberOptionalCartons and internal numeric systems
MSI / PlesseyDigitsVariableMod 10 / mod 11 variantsShelf-edge inventory labels
PharmacodeNumber 3–131070NoPharmaceutical packaging control
GS1 DataBarGTIN (+ AIs when expanded)VariableYesLoose produce, small healthcare items, coupons
Data MatrixFull ASCII / UTF-8Up to ~2,300 charsReed–SolomonDirect part marking, healthcare packs
PDF417Full ASCII / binaryUp to ~1,800 charsReed–SolomonDriving licences, boarding passes
AztecFull ASCII / binaryUp to ~3,000 charsReed–SolomonRail and airline tickets

01. Getting started

What does this barcode generator do?

It turns a number or a piece of text into a scannable barcode image, in your browser. Pick a symbology, type the data, adjust size and colours, and download a PNG, an SVG or a JPG — or generate hundreds at once from a list and get them back as a ZIP. Nothing is uploaded and no account is needed.

Which barcode should I pick if I don't know?

Two questions decide it almost every time. Is it going to be scanned at a shop till? Then you need EAN-13 (or UPC-A in North America) and a GS1-issued number. Is it for your own internal use — asset tags, shelf labels, work orders, warehouse bins? Then Code 128, which takes letters and digits, is the right default. Everything else on the list is a special case of one of those two.

Is it free? Are there limits?

Completely free, with no account, no watermark on the output and no daily cap. Batch generation is limited only by your device's patience — a few hundred codes render in a couple of seconds.

Do I need to install anything?

No. It is one web page. The barcode engine runs in your browser, so there is nothing to install, no extension and no sign-up. Advanced symbologies load a second engine on demand, once, and then stay available.

Does it work offline?

After the page and its engine have loaded, yes — generating, previewing and downloading all happen locally with no network traffic. The first load needs a connection, and so does the first use of an advanced symbology, because that engine is fetched only when you ask for it.

Can I use the barcodes commercially?

The images are yours to use however you like — there is no licence attached to the output and no watermark. What is not free is the right to a particular number: a retail GTIN has to be licensed from GS1. Generating the symbol is free; owning the identifier is a separate matter.

02. Choosing a symbology

What is the difference between Code 128 and Code 39?

Code 128 encodes the full ASCII set, is much denser, and carries a mandatory check character — it is the modern default for logistics and internal labelling. Code 39 is older, encodes only digits, capital letters and a handful of symbols, and produces a symbol roughly 30–50% wider for the same data. Use Code 39 only when something in your chain explicitly requires it; otherwise use Code 128.

EAN-13 or UPC-A — which do I need?

They are the same system. UPC-A is 12 digits and is the North American form; EAN-13 is 13 digits and is used everywhere. A UPC-A is simply an EAN-13 with a leading zero, and modern scanners read both. If you sell internationally, use EAN-13; if your market is strictly US/Canada retail, UPC-A is still conventional.

What is GS1-128 and how is it different from Code 128?

Same bars, extra rules. GS1-128 is Code 128 with an FNC1 character at the start and data structured into Application Identifiers(01) for the GTIN, (17) for an expiry date, (10) for a batch, (21) for a serial. That is what lets a receiving system know that the digits it just read are an expiry date rather than a weight. Plain Code 128 carries no such meaning.

What is ITF-14 for?

Shipping cartons and cases. ITF-14 encodes a 14-digit GTIN and is designed to survive printing straight onto corrugated cardboard, where finer symbologies smear. It is normally surrounded by a thick bearer bar, which stops a scanner reading a partial symbol at an angle. It is not a retail POS symbol — the individual item still needs its own EAN-13 or UPC.

When would I use Interleaved 2 of 5 (ITF)?

For numeric-only data where you control both ends of the chain, or where a legacy system demands it. ITF encodes digits in pairs, so the data length must be even — an odd number of digits gets a leading zero added. It is compact but has no built-in check character unless you add one, which is why ITF-14 (its fixed-length, checked cousin) is preferred for cartons.

What is Codabar still used for?

Libraries, blood banks, photo labs and some courier systems. It encodes digits and a few symbols, uses letters A, B, C or D as start and stop characters, and survives poor printing well. It persists mostly because replacing the scanners and the millions of existing labels would cost more than keeping it.

What is Pharmacode?

A pharmaceutical packaging control code (Laetus) that encodes a number from 3 to 131070. It is deliberately minimal and is read at very high speed on packaging lines to confirm the right leaflet or carton is being used. It carries no check digit and is not meant to be read by a general-purpose scanner.

What is MSI / Plessey?

An older numeric symbology still found on retail shelf-edge labels for inventory control. Its distinguishing feature is the choice of check digit schemes — mod 10, mod 11, or a double check digit — which is why you will see MSI10, MSI11, MSI1010 and MSI1110 offered separately. Pick whichever your existing system expects.

What is Code 93?

A denser, more secure successor to Code 39, with two check characters and full ASCII support through shift characters. It is used in some logistics and Canadian postal applications. It is offered here through the advanced engine, which loads on demand.

What is GS1 DataBar?

A family of compact GS1 symbols designed for things EAN-13 cannot fit on or fully describe — loose produce, small healthcare items, coupons. DataBar Expanded can additionally carry Application Identifiers such as weight and expiry date, which is why supermarket fresh-food labels use it. All POS scanners installed since 2010 are expected to read it.

Should I use a 2D code instead — Data Matrix, QR or PDF417?

If you need to store more than about twenty characters, or you are marking something tiny, yes. Data Matrix is the standard for direct part marking and healthcare (a GS1 Data Matrix on a medicine box carries GTIN, batch and expiry in a few millimetres). PDF417 is what is on the back of most driving licences and boarding passes. QR is the consumer-facing one — if that is what you want, the dedicated QR code generator gives you more control over it.

Which symbology holds the most data?

Among the 1D codes here, Code 128 is the densest for mixed text and PDF417 stores far more than any of them by stacking rows. If you are pushing more than roughly 20–30 characters into a linear barcode, the symbol becomes impractically wide and a 2D code is the correct answer rather than a workaround.

03. Retail, GS1 and ISBN

Do I need to register with GS1 to use a barcode?

For anything scanned at a retail till, effectively yes. The number itself — the GTIN — is licensed from GS1, and retailers verify that the company prefix belongs to you. For internal use of any kind, no: warehouse labels, asset tags, event tickets and library codes need no registration at all, and this tool is perfectly suited to those.

Can I just make up an EAN-13 number?

You can generate a technically valid symbol from any 13 digits, and it will scan. What it will not be is yours — the number may already belong to another company, and most retailers reject products whose prefix does not resolve to the seller. Made-up numbers are fine for testing, mock-ups and internal use, and a bad idea on anything you intend to sell through a shop.

What do the first digits of an EAN-13 mean?

They are the GS1 prefix, which identifies the issuing GS1 member organisation — not, as the myth goes, the country of manufacture. 50 is GS1 UK, 40–44 is Germany, 30–37 is France, 54 is Belgium and Luxembourg, 00–13 is the United States and Canada. A product made in Vietnam can perfectly legitimately carry a prefix issued in the UK.

How do I make an ISBN barcode for a book?

Take the 13-digit ISBN (it already starts with the Bookland prefix 978 or 979), strip the hyphens, and generate it as an EAN-13. If the price needs to appear as the small add-on symbol to the right, generate an EAN-5 alongside it — the first digit is the currency code, the remaining four the price. The advanced engine also offers a dedicated isbn symbology that renders the human-readable ISBN above the bars.

What about magazines and sheet music?

Periodicals use ISSN, encoded as an EAN-13 behind the prefix 977, usually with an EAN-2 add-on carrying the issue number. Printed music uses ISMN, which sits behind 979-0. Both are EAN-13 symbols once the prefix is in place.

What is UPC-E?

A compressed UPC-A. Through a fixed set of zero-suppression rules, certain 12-digit UPC-A numbers can be expressed in 8 digits, producing a symbol small enough for a can of drink or a lip balm. It is not a separate numbering system — the scanner expands it back to the full UPC-A before looking it up.

Can one product have several barcodes?

Each distinct sellable variant needs its own GTIN — a different size, colour or multipack is a different product as far as the till is concerned. The same physical item can, however, carry several symbols: an EAN-13 for the consumer unit, an ITF-14 on the outer case, and a GS1-128 on the pallet label carrying batch and expiry.

04. Data rules and check digits

What is a check digit and does this tool add one?

It is a digit computed from all the others so a scanner can tell whether it read the symbol correctly. This tool handles it for you: type 12 digits for an EAN-13 and it calculates the 13th, and the same applies to EAN-8, UPC-A and ITF-14. Paste all 13 and it verifies the one you supplied instead, and tells you if it disagrees.

How is the EAN-13 check digit calculated?

Multiply the digits alternately by 1 and 3 from the left (1, 3, 1, 3…), add the results, then subtract that total from the next multiple of ten. For 590123412345 the sum is 60, so the check digit is 0. UPC-A and EAN-8 use the same alternating scheme with the weights starting differently — which is why a UPC-A is not simply an EAN-13 with a digit removed.

My barcode says the data is invalid — why?

Every symbology has rules, and the validator names the one you broke: EAN-13 needs exactly 12 or 13 digits, EAN-8 needs 7 or 8, UPC-A 11 or 12, ITF-14 13 or 14, ITF an even number of digits, Codabar must start and end with A, B, C or D, and Pharmacode must be a number between 3 and 131070. Code 128 and Code 39 are the forgiving ones — Code 39 accepts capitals, digits and - . $ / + % space, and Code 128 accepts essentially any ASCII.

Can I encode letters and symbols?

In Code 128, yes — the full ASCII range, upper and lower case, punctuation included. Code 39 takes capitals and digits only. Every EAN/UPC symbology is strictly numeric and fixed length, as is ITF, MSI and Pharmacode. If a letter must be in the code, Code 128 is almost always the answer.

Can I encode spaces, accented characters or emoji?

Spaces are fine in Code 128 and Code 39. Accented characters and emoji are not: linear symbologies encode bytes from a limited set, not Unicode. If you need to carry arbitrary text, use a 2D code — Data Matrix and QR handle UTF-8 properly.

How long can the data be?

There is no hard limit in Code 128, but there is a practical one: every character adds width, and past roughly 20–25 characters the symbol gets too wide to print or scan comfortably. Fixed-length symbologies (EAN, UPC, ITF-14) accept exactly what their standard specifies and nothing else.

What are the hidden characters in GS1-128 for?

GS1-128 uses FNC1 as a start marker and as a separator after any variable-length Application Identifier. They are functional characters, not printable ones, which is why the human-readable line shows (01) style brackets while the encoded data contains no brackets at all — the brackets are for people, the FNC1 is for the scanner.

05. Size, printing and scanning

What size should a retail barcode be?

For EAN-13 at 100% magnification the symbol is 31.35 mm wide by 22.85 mm tall, built on an X-dimension (narrowest bar) of 0.330 mm. GS1 allows retail point-of-sale symbols to be scaled between 80% and 200% — an X-dimension of 0.264 mm to 0.660 mm, or roughly 25 mm to 63 mm wide. Below 80% you are outside the standard and rejection at a retailer's verification step becomes a real risk.

What is the X-dimension and why does it matter?

It is the width of the narrowest bar, and it is the single number that decides whether a symbol scans. Everything else — total width, quiet zones, recommended height — is expressed as a multiple of it. Print below the X-dimension your scanners can resolve and the symbol fails no matter how sharp the printer is.

What is a quiet zone and how much do I need?

The blank margin either side of the bars, without which a scanner cannot find the symbol's edges. EAN-13 needs 11X on the left and 7X on the right — 3.63 mm and 2.31 mm at 100%. Code 128 wants at least 10X on both sides. This is the most common reason a beautifully printed barcode refuses to scan: someone cropped it tight or put a border round it.

Which resolution should I export at?

For print, export the SVG — it is resolution-independent and scales to any size without softening the bar edges. If you need a raster, use the 300 dpi option; 300 dpi is the practical minimum for a printed barcode, and 600 dpi is better on a thermal label printer. For anything that will only be shown on a screen, 1× or 2× PNG is plenty.

PNG, SVG or JPG?

SVG for print and for anything that will be resized. PNG for screens, documents and email — it is lossless, so bar edges stay crisp. JPG only when something forces you to: JPEG compression blurs high-contrast edges, which is exactly what a barcode is made of. It is offered for compatibility, not because it is a good idea.

Can I print barcodes on a normal office printer?

Yes, for internal use — a 600 dpi laser printer produces perfectly scannable Code 128 and EAN-13 at normal sizes. Two cautions: print at 100% scale with any "fit to page" option switched off, and use plain white paper rather than glossy, because reflections defeat laser scanners.

Should I change the barcode colours?

Only carefully. Scanners read contrast, and most read in the red part of the spectrum, where red bars look almost white. Black on white is the only truly safe combination; dark blue or dark green on white generally works; red, orange or yellow bars do not scan, and neither does anything on a dark background. If you invert the colours here for a design mock-up, do not send that version to print.

How tall should the bars be?

Tall enough to survive a scanner crossing them at an angle. The EAN-13 standard height at 100% is 22.85 mm, and truncating bars to save space — a habit borrowed from graphic design — measurably raises the failure rate at a busy till. For internal labels you can go shorter, since staff can align a handheld scanner deliberately.

Can a barcode be scanned from a phone or computer screen?

Usually, with two caveats. Camera-based scanners handle screens fine; older laser scanners often cannot, because the screen's own light interferes with the reflected beam. Turn the brightness up and disable any blue-light or night filter, which tints the white background and kills contrast.

06. Batch, labels and automation

Can I generate many barcodes at once?

Yes — that is what the Batch tab is for. Paste one value per line, or value,label pairs, and every valid row is rendered. You can then download the whole set as a ZIP of PNGs or SVGs, with each file named after its data.

How do I make a sheet of labels to print?

The Label sheet tab lays your codes out on an A4 or Letter page in a grid you choose — columns, rows and margins — and prints with one click. Set your browser's print dialog to 100% scale and no "fit to page", or every barcode on the sheet will be silently resized.

Can I use my own label stock, like Avery sheets?

Set the grid to match the sheet's layout and adjust the page margins until the preview lines up with your labels. Print one page on plain paper first and hold it against the label sheet — it takes thirty seconds and saves a sheet of labels.

What happens to invalid rows in a batch?

They are flagged rather than silently skipped: the row is listed with the reason it failed, and the valid rows still render and download. That way a single typo in a list of 300 does not cost you the whole run.

Can I automate this from a script instead?

For a one-off job the batch tab is faster. For a recurring pipeline, use the same open-source engines this page uses — JsBarcode for the common 1D symbologies and bwip-js for everything else. Both run in Node and both are MIT licensed.

Can I save a configuration I use often?

Your last generated codes are kept in the browser's history strip, and clicking one restores its symbology, data and styling. Presets for the common jobs — retail item, shipping carton, asset tag, book — are one click away above the data field.

07. Privacy, storage and how it works

Is my data sent to a server?

No. The barcode is drawn in your browser, on your device. Product numbers, batch codes, patient identifiers, asset tags — none of it is transmitted, logged or stored anywhere. The only network requests the page makes are for its own code, and you can watch that in your browser's Network tab while you generate.

Is anything saved between visits?

Only your recent generations, kept in this browser's local storage so the history strip survives a reload, plus your theme choice. Clearing site data wipes both. Nothing is associated with an account, because there is no account.

Is this safe for confidential or regulated data?

Nothing leaves your device, which is exactly why local generation suits pharmacy batch numbers, patient wristbands, evidence labels and internal asset registers. Your own policy still governs what you may put on a label — but there is no upload to disclose in a data-protection assessment.

What engine draws the barcodes?

Two, chosen automatically. The common 1D symbologies use JsBarcode, which is tiny and loads with the page. Advanced symbologies — Code 93, GS1 DataBar, Data Matrix, PDF417, Aztec, postal codes — use bwip-js, a JavaScript port of Barcode Writer in Pure PostScript, which is fetched only when you select one of them so the page stays fast for everyone else.

Are the symbols standards-compliant?

The encoding is: both engines implement the published symbology specifications, including check characters and encoding modes. What a tool cannot do for you is guarantee the print is compliant — that depends on your printer, substrate and ink, which is what barcode verification equipment measures. For retail supply, have a physical sample verified before a production run.

Does it work on a phone or tablet?

Yes. The layout adapts, and generating, previewing and downloading all work on iOS and Android. Scanning a code straight off your own phone screen is the awkward case — you need a second device to test with.

08. Troubleshooting

My barcode will not scan — what do I check first?

In order: quiet zones (is there clear white space either side?), size (is it printed at least at the standard X-dimension?), contrast (dark bars on a white background, never red), print quality (are bars sharp, or smudged and filled in?), and the right symbology (a scanner configured for retail EAN may simply ignore Code 39). Nine failures out of ten are the first two.

The scanner reads a different number than I encoded.

That is nearly always a check-digit or format mismatch: a UPC-A read by a scanner set to emit EAN-13 gains a leading zero, and a UPC-E is silently expanded to its full 12-digit UPC-A. Both are correct behaviour by the scanner. Check what your system expects to receive before assuming the symbol is wrong.

My printed barcode looks fine but fails at the retailer.

Retailers verify to ISO/IEC 15416, which grades far more than "does it scan once" — edge contrast, decodability, modulation and defects all get a score. The usual culprits are printing below 80% magnification, ink spread on absorbent packaging making bars too wide, and quiet zones eaten by artwork. Order a verification report rather than guessing.

The image looks blurry when I enlarge it.

You exported a raster at screen resolution and scaled it up. Download the SVG instead and place that in your artwork — it stays sharp at any size — or re-export the PNG at 300 dpi if the software you are pasting into cannot take vectors.

The human-readable text is cut off or overlapping.

Reduce the font size or increase the text margin in the options, and check the symbol is wide enough for the number underneath it. On very narrow symbols — EAN-8, UPC-E, short Code 128 — the default 20px text can be wider than the bars themselves.

Nothing renders at all after I pick an advanced symbology.

That engine loads on demand, so it needs a connection the first time you select one of those formats. If the page is offline, or a corporate proxy blocks the CDN, the advanced list will not draw while the built-in symbologies keep working normally.

Why is there no Code 93 or DataBar in the main list?

They are in the list — under the advanced group, which is served by the second engine. The built-in engine deliberately covers only the symbologies it implements correctly rather than falling back to a generic pattern that looks like a barcode and scans as nothing.

Related free tools

Part of a collection of free, no-signup browser tools. A few that pair well with the barcode generator: