Pick Code 128, EAN-13, UPC-A or Code 39, type your text or number, and download a scannable barcode as PNG or SVG.
This barcode generator makes Code 128, EAN-13, UPC-A and Code 39 barcodes and saves them as PNG or SVG.
Use the Barcode Generator
Barcode Input
Any plain ASCII text, up to 80 characters.
Enter text on the left to generate a barcode
Download as PNG or SVG (best for print)
Downloaded!
Quick answer
This barcode generator makes Code 128, EAN-13, UPC-A and Code 39 barcodes and saves them as PNG or SVG. Code 128, the default, takes up to 80 plain ASCII characters for shipping and inventory labels. For EAN-13, type 12 digits and the check digit is added, so 590123412345 becomes 5901234123457; UPC-A works the same way with 11 digits. Products sold in stores also need a GTIN licensed from GS1.
Examples
Use
Format
Example data
Shipping, inventory
Code 128
ABC-12345
US retail
UPC-A
036000291452
Retail outside US
EAN-13
5901234123457
Books
ISBN as EAN-13
9780306406157
Badges, older systems
Code 39
EMP-0042
Links, Wi-Fi
QR code (separate tool)
https://...
Pick a format, then type your text or number.
Summary
This free barcode generator makes Code 128, EAN-13, UPC-A and Code 39 barcodes in your browser with JsBarcode. EAN-13 and UPC-A check digits are worked out for you, and a wrong check digit is flagged. Set the bar height, show or hide the text under the bars, and save the barcode as PNG or SVG.
How it works
Pick a format: Code 128 (default), EAN-13, UPC-A or Code 39.
Type or paste your text or number. The barcode renders as you type.
For EAN-13 and UPC-A, leave off the last digit to have the check digit added, or type it to have it checked.
Adjust the bar height and the text label, then click Download PNG or Download SVG.
Use cases
Print Code 128 labels for warehouse bins and internal stock numbers.
Make EAN-13 or UPC-A barcodes for products once you have a GS1 number.
Produce shipping labels and logistics codes.
Generate Code 39 barcodes for badges or systems that only read Code 39.
Test barcode scanners during software development.
Create printable barcodes for event tickets or membership cards.
Frequently Asked Questions
Code128 is a high-density linear barcode symbology that can encode all 128 ASCII characters. It is widely used in shipping, packaging, and supply-chain applications.
Code 128 accepts up to 80 characters here and Code 39 up to 40, while EAN-13 and UPC-A are always 13 and 12 digits. Code 128 itself has no fixed maximum, but every character makes the barcode wider: 10 digits give a 200 px barcode, while 80 letters give one 1,850 px wide, too long for most labels. Digits are packed in pairs, so number-only codes stay short. The GS1-128 shipping standard caps data at 48 characters.
Yes. Code 128, EAN-13, UPC-A and Code 39 are read by virtually every barcode scanner, including handheld USB scanners, mobile apps such as Google Lens, and built-in camera scanners. Print a test label before a big run.
No. All barcode generation happens entirely in your browser using JavaScript. Nothing is transmitted or stored on any server.
PNG and SVG. SVG is vector, so it stays sharp at any size and is the better pick for print and label software. In the PNG each narrow bar is 2 pixels wide with a 10 px white margin, and the height slider (40 to 200 px) only changes how tall the bars are. If you print the PNG, scale it in whole steps such as 200% or 300% with smoothing turned off so the bar edges stay sharp.
Yes. Pick EAN-13 or UPC-A and type 12 or 11 digits to have the check digit added, or the full 13 or 12 digits to have it checked. UPC-A is the usual choice in the US and Canada and EAN-13 elsewhere. Stores also expect a GTIN licensed from GS1 to your company, so a made-up number may be rejected by retailers or clash with another product.
Take the first 12 digits, add the digits in odd positions, then add 3 times the digits in even positions. The check digit is what you need to reach the next multiple of 10. For 590123412345: 5+0+2+4+2+4 = 17, 9+1+3+1+3+5 = 22, and 17 + 3 × 22 = 83, so the check digit is 7 and the full code is 5901234123457. The generator does this for you when you enter 12 digits.
An older barcode that holds capital letters A to Z, digits, space and the symbols - . $ / + %. It makes a wider barcode than Code 128 for the same data, so use it only when a scanner, badge system or industry rule asks for Code 39.
No. A QR code is a 2D code that holds a URL, Wi-Fi login or long text, and this page makes 1D barcodes only. Use the QR Code Generator for links and the PDF417 generator for ID-style 2D barcodes.