Generate EAN-13, UPC-A, Code 128, Code 39 barcodes. Free, private, runs in your browser.
100% private — your files never leave your browser. All processing happens locally on your device.
Any text / URL / Wi-Fi / vCard payload. Scannable by every modern phone camera.
Barcodes are the 1D stripes you see on every retail package. EAN-13 is the global standard — 13 digits, used on every consumer product outside North America and increasingly inside it too. UPC-A is the US/Canada variant — 12 digits, still dominant on American retail shelves. Code 128 is a general-purpose format that accepts any ASCII — used for internal tracking, shipping labels, and ID cards. Code 39 is older and simpler — uppercase letters, digits, and a few symbols — still common in warehouse workflows and military/government applications. ITF (Interleaved 2 of 5) is a compact digit-only format for shipping cartons. MSI Plessey is a legacy warehouse format.
EAN-13 and UPC-A include a mandatory check digit — the last digit is a mod-10 weighted sum of the preceding digits. If you enter 12 digits for EAN-13 (or 11 for UPC-A), the tool (via jsbarcode) auto-computes the check digit for you. If you enter the full 13 (or 12), we verify your check digit is correct and reject obvious typos before rendering a barcode a scanner would fail to read. Code 128 has no user-facing check digit — the format handles it internally. Code 39 has an optional check digit (off by default).
The preview renders as an SVG in the page — right-click it in your browser to copy or save as vector, which scales to any size without pixelation. The 'Download PNG' button rasterises at 2× resolution for document embedding or sticker printing. For professional barcode printing, always favour the SVG — the rasterised version can drift slightly from spec at unusual sizes, while the vector preserves the bar widths exactly.
Most online barcode generators upload your input to a server, render the barcode there, and send back a PNG. That's a privacy tax for no technical reason — jsbarcode runs in the browser and produces the same output. Your barcode data (which is often a sensitive product SKU, internal ID, or serial number) never leaves your device here. The tool works offline too once loaded.
EAN-13 (retail), UPC-A (US retail), Code 128 (general-purpose ASCII), Code 39 (warehouse/military), ITF (shipping), and MSI Plessey (warehousing). Pick from the format selector.
EAN-13 is digits-only and fixed-length — used on consumer packaging. Code 128 accepts any ASCII including letters and symbols — used for internal tracking, serial numbers, and IDs.
Yes. For EAN-13 and UPC-A, enter 12 or 11 digits and jsbarcode auto-computes the last check digit. If you enter a full 13 or 12, we verify your check is correct.
Yes — the SVG is rendered live; click 'Download PNG' to save a 2× resolution raster version. Right-click the SVG in the browser to copy it directly as an SVG if you need vector output.