NoInstallTools

Barcode Generator: Free Online Code 128, EAN-13 & UPC Generator

Generate and download barcodes in six formats — free, private, runs in your browser. No account needed.

Any ASCII characters

Barcode preview

About Barcodes

A barcode encodes data as a series of parallel lines of varying widths and spacings. A laser or camera scanner reads that pattern optically in milliseconds, decodes it back into the original text or number, and passes it to whatever system is checking it in, ringing it up, or logging it. That speed and reliability is why barcodes remain the standard for retail checkout, warehouse inventory, shipping manifests, and healthcare labeling decades after their invention. Pick a format above, type or paste your value, and the barcode renders live as you type, ready to download as a PNG.

Format guide

Code 128 — Best all-purpose format. Encodes any ASCII text or numbers. Used in shipping labels, name badges, and internal tracking.

EAN-13 / EAN-8 — Standard product barcodes used in global retail. Requires a GS1-issued prefix for real commercial products.

UPC-A — The North American equivalent of EAN-13. Every product sold in US/Canadian retail has one.

Code 39 — Older format, widely supported by industrial scanners. Limited to uppercase letters, digits, and a few symbols.

ITF-14 — Used on outer shipping cases and pallets. Encodes a GTIN-14 (Global Trade Item Number).

How the check digit works

EAN-13, EAN-8, UPC-A, and ITF-14 all end with a check digit the generator calculates for you from the digits you type, so you only need to enter the base number shown in the placeholder. That digit lets a scanner catch a misread instantly: it runs the same calculation on whatever it just scanned and rejects the read if the result does not match, rather than passing a corrupted number through to the register or inventory system. Code 128 and Code 39 do not use a fixed-length check digit in the same way, since both formats are built to encode arbitrary text rather than a strict numeric identifier.

Getting a barcode that scans reliably

Keep the downloaded PNG at its native size or larger when printing. Scaling a barcode down too far shrinks the gaps between bars until a scanner can no longer tell them apart, especially on formats like EAN-13 and UPC-A that pack a fixed amount of data into a fixed width. Print on plain white or light-colored stock with a matte finish where possible, since a glossy surface can create glare that confuses a laser scanner, and always leave the quiet zone, the blank margin JsBarcode adds automatically around the bars, untouched when placing the image into a label template. If a symbol still refuses to scan after printing, check the value against the format's hint text first; a value with the wrong digit count or an unsupported character produces a barcode that renders visually but fails validation on the scanner side.

Common use cases

Small businesses generate Code 128 barcodes for internal inventory and asset tags where no GS1 registration is required. Event organizers print unique Code 128 values onto badges or tickets for quick check-in scanning. Warehouses label outer cartons with ITF-14 for pallet-level shipping tracking. Anyone selling a product through a retail channel that requires a real, globally unique EAN-13 or UPC-A number still needs a GS1 company prefix, since this tool renders whatever number you give it correctly but has no way to guarantee that number is not already assigned to someone else's product.

Privacy

All barcode generation happens locally in your browser using the JsBarcode library, rendered straight to an SVG element and never transmitted anywhere. Your data is never sent to a server, which matters if the values you are encoding, part numbers, internal SKUs, batch codes, are not meant for outside eyes. Even the PNG download is produced by drawing the SVG onto a local canvas, so the finished image never touches the network either.

Barcodes versus QR codes

A one-dimensional barcode like the ones this tool generates packs data along a single horizontal axis, which keeps the format simple and readable by cheap, fast laser scanners built for exactly that job. A QR code, by contrast, stores data across a two-dimensional grid, which lets it hold far more information, including full URLs, contact cards, and Wi-Fi credentials, at the cost of needing a camera-based scanner rather than a laser. If you are labeling a retail product, tracking inventory, or working with equipment that already expects a linear barcode, stick with the formats here. If you need to encode a link, a large block of text, or anything beyond a short numeric or alphanumeric string, reach for a QR code generator instead.

Related: QR Code Generator for encoding URLs and contact info, or Markdown Notes to keep a log of deployed barcodes.

Frequently Asked Questions

Is the Barcode Generator free?

Yes — completely free. No account, no subscription, and no watermarks on the generated barcodes.

Is my data uploaded to a server?

No. Barcodes are generated entirely in your browser using the JsBarcode library. Your data never leaves your device.

Do I need an account?

No account, no login, and no signup required.

Which format should I use?

Code 128 for any custom internal tracking data. EAN-13 or UPC-A for retail products sold in stores (requires a GS1 registration for commercial use). Code 39 for older industrial systems. ITF-14 for outer cartons and shipping pallets.

Can I use the generated barcode commercially?

For internal use (inventory, asset tracking, events) there are no licensing requirements. For retail products requiring EAN-13 or UPC-A, you need a GS1 company prefix to ensure the number is globally unique. The barcode itself is free to generate.