Generate CODE128, EAN, UPC and more barcodes in your browser β no signup, no upload, download PNG or SVG.
Accepts any ASCII character. Most common 1D barcode format.
Options
Enter a value to generate your barcode
Everything runs in your browser β no data is sent to any server.
This tool uses the open-source JsBarcode library to render barcodes entirely in your browser. No server receives your data. The barcode is rendered as an SVG element and can be exported as a scalable SVG vector or a 2x-resolution PNG raster image.
The generated codes are standards-compliant and contain no watermark. You can use them on product labels, shipping documents, retail packaging, invoices and marketing materials without restrictions.
CODE128
The most versatile 1D barcode. Accepts any ASCII character β letters, digits and symbols. Used in logistics, shipping and general inventory.
EAN-13
Standard retail barcode used internationally. Encodes 12 digits plus a check digit. Required for products sold in Europe, Asia and most of the world.
EAN-8
Compact version of EAN for small packaging where a full EAN-13 would not fit. Encodes 7 digits plus a check digit.
UPC-A
The standard retail barcode in North America. Encodes 11 digits plus a check digit. Used on virtually all products sold in the US and Canada.
CODE39
Alphanumeric barcode supporting uppercase letters, digits and a handful of special characters. Common in automotive, defense and ID badge printing.
ITF-14
Designed for outer shipping cartons (cases). Encodes 14 digits with the distinctive bearer bars. Standard for GS1 logistics labels.
MSI / Plessey
Numeric-only barcode used mainly for inventory and warehouse shelf labeling. Accepts any sequence of digits.
Pharmacode
Specialized barcode used on pharmaceutical packaging. Encodes integers from 3 to 131070 as a series of bars of two different widths.
Download PNG when you need a ready-to-use image for a website, email, Word document or a small print. The PNG is exported at 2x resolution for sharpness on high-DPI screens and printers.
Download SVG when you need the barcode to scale without pixelation β product labels, packaging artwork, laser engraving or whenever a designer will open it in Illustrator, Inkscape or Figma. SVG is also the format to use if your printing workflow requires vector input.
Is this barcode generator completely free?
Yes. The tool is free with no hidden limits, no account required and no file upload. Barcodes are generated entirely in your browser using the open-source JsBarcode library.
Are these barcodes free for commercial or retail use?
Yes. The barcodes generated here contain no watermark and carry no usage restrictions. You can use them on product packaging, retail labels, shipping labels, invoices and marketing materials. Note that standard EAN and UPC barcodes for retail products must be registered with GS1 β this tool generates the visual barcode from any number you provide.
Which barcode formats are supported?
CODE128 (universal, any ASCII), EAN-13 (retail products internationally), EAN-8 (small packaging), UPC-A (retail products in North America), CODE39 (logistics, ID cards), ITF-14 (shipping cartons), MSI / Plessey (inventory shelving) and Pharmacode (pharmaceutical packaging).
Why is my EAN-13 or UPC barcode showing an error?
EAN-13 requires exactly 12 digits (the check digit is added automatically) or all 13 digits. UPC-A requires 11 digits (check digit auto-added) or 12 digits. ITF-14 requires 13 or 14 digits. Make sure you are entering only digits and the correct count for your chosen format.
What is the difference between PNG and SVG download?
PNG is a raster image exported at 2x resolution β ideal for web pages, emails, Word documents and straightforward prints. SVG is a vector format that stays perfectly crisp at any size, making it the right choice for large-format print (labels, banners, packaging) and further editing in Illustrator, Inkscape or Figma.
Is my data uploaded to any server?
No. Everything runs locally in your browser using JavaScript. The value you enter is never sent to any server and is never stored anywhere. You can even use the tool offline after the page has loaded.