Barcode Generator

Create Code 128, EAN, and UPC barcodes as PNG or SVG

CODE128 accepts letters, digits, and punctuation, which makes it the default for asset tags, order numbers, and tickets.

Need a scannable square code for a link, WiFi login, or contact card? QR codes have a dedicated tool: QR Code Generator.

Preview

Generating...

About the Barcode Generator

Barcodes still run the physical world: every checkout scanner, warehouse gun, and library desk reads them. This generator produces seven symbologies covering the common cases. CODE128 is the general-purpose workhorse, encoding any text including lowercase and punctuation, which suits order numbers, asset tags, and event tickets. EAN-13, EAN-8, and UPC-A are the retail standards printed on products worldwide, and ITF-14 marks shipping cartons with the case-level version of a product code.

Every format has strict input rules, and the tool validates your value client-side before drawing anything, with a specific error message instead of a silent blank: EAN-13 wants 12 digits with the 13th check digit computed for you (or 13 digits if your checksum is already correct), UPC-A wants 11 or 12, ITF-14 wants 13 or 14, and CODE39 is limited to uppercase letters, digits, and a handful of symbols. When you supply all digits but the check digit, the generator appends the correct one automatically, matching how GS1 standards build these codes.

Output comes in two flavors: PNG at 3x resolution, ready for documents, spreadsheets, and label printers, and SVG, the vector version that stays razor sharp when scaled to any size for packaging artwork. Bar width and height sliders cover scanner quirks; a taller barcode scans more easily at odd angles. For 2D codes that hold URLs, WiFi credentials, or contact cards, use the QR code generator instead; barcodes and QR codes solve different data-density problems.

How to Use the Barcode Generator

  1. Choose the symbology that matches your use case; retail products use EAN-13 or UPC-A.
  2. Type the value, following the hint under the selector for the chosen format.
  3. Adjust bar width and height, and toggle whether the value prints beneath the bars.
  4. Check the live preview; fix any validation message before exporting.
  5. Download as PNG for typical use, or SVG when the barcode must scale without blur.

Barcode Generator FAQs

Which barcode type should I choose?

Use CODE128 for internal purposes like asset tags, invoice numbers, or tickets, since it encodes any text. Use EAN-13 for retail products sold internationally, UPC-A for the United States and Canada, EAN-8 for very small packages, and ITF-14 for outer shipping cartons. If your value is plain alphanumeric text, CODE128 is the safe default.

Why does EAN-13 ask for 12 digits when the barcode shows 13?

The 13th digit is a checksum calculated from the first 12 to let scanners detect misreads. You enter 12 digits and the generator computes and appends the correct check digit automatically. If you paste a full 13-digit code, it is accepted only when the final digit actually matches the computed checksum.

Can I use lowercase letters in my barcode?

Only in CODE128. CODE128A and CODE39 have no lowercase characters in their character sets, so the validator rejects them with a specific message. Retail formats (EAN and UPC) accept digits only. If your value mixes cases, switch the type selector to CODE128.

What is the difference between PNG and SVG downloads?

PNG is a pixel image exported at three times display size, fine for word processors, spreadsheets, and label software. SVG is a vector file describing the bars as shapes, so it prints perfectly crisp at any dimension, from a price sticker to a full-size shipping label. Use SVG for professional print work.

Will these barcodes scan with a normal phone or scanner?

Yes. The generator draws standards-compliant barcodes with adequate quiet zones, and both formats scan with dedicated scanners and with phone camera apps that support 1D barcodes. For best results keep the value short, print at a decent size, and always test one printed sample before running a batch.