text→bars

Barcode Generator

Create a scannable Code 128, Code 39, EAN-13, or UPC-A barcode.

By opening this website or using its tools, you agree to our Terms and Privacy Policy.

Any text, letters, numbers, and symbols

Network activity during processing
0 bytes uploaded

Your file never leaves your browser during processing

How it works

To generate a barcode, choose a format above and type a value — a scannable barcode renders instantly in your browser and can be downloaded as a PNG, with nothing ever sent to a server.

Unlike a QR code, a 1D barcode like these encodes its data as a sequence of bar widths rather than a 2D grid, which is why each format has stricter rules about what characters and lengths it can represent. Code 128 is the most flexible of the four here — it can encode any printable ASCII text — which makes it the default choice unless you specifically need one of the retail formats.

EAN-13 and UPC-A are the barcodes printed on almost every retail product; they encode a fixed-length numeric product code (plus a checksum digit the format calculates automatically) and are what a store’s point-of-sale scanner expects. Code 39 is an older, simpler format still common in logistics and ID badges — it supports uppercase letters, digits, and a small set of symbols.

The barcode is rendered directly to a canvas element by a well-tested encoding library running locally in your browser — the same approach as this site’s QR generator, just for a different symbology. Nothing about the value you type is transmitted anywhere.

FAQ

Which format should I use?

Code 128 for general text, numbers, or codes. EAN-13 or UPC-A specifically for retail product barcodes. Code 39 for logistics or badge systems that expect it.

Why does my EAN-13 or UPC-A value show an error?

Those formats only accept a fixed number of digits (11-12 for UPC-A, 12-13 for EAN-13) — the last digit is a checksum the format calculates, so most values need only the digits before it.

Is my barcode value uploaded anywhere?

No. It is rendered entirely in your browser. The live network monitor on this page confirms nothing is sent.

Related tools