Barcode Tools

Barcode Generator

Generate linear barcodes with the right check digit and quiet zone, and download them as SVG or PNG.

Start here Choose the symbology your scanner or trading partner expects.

Any printable ASCII. The densest of the linear symbologies, and the usual default for internal labels.

SOFTKEY-1042
  • Encoded value: SOFTKEY-1042
  • 156 modules plus a 10-module quiet zone either side.
  • 14 codewords including the start, modulo-103 check symbol, and stop.

Understand the format

How Barcode Generator works

A linear barcode is a width-encoded number: the scanner measures ratios between bars and spaces, which is why quiet zones and print quality matter more than size.

How a scanner actually reads a symbol

A laser or camera scanner sees a one-dimensional signal of light and dark and measures the relative widths of the bars and spaces. It never measures absolute millimetres, so a symbol can be printed large or small as long as the ratios survive. What it cannot recover from is a missing quiet zone: the blank margin either side tells the decoder where the symbol begins and ends, and cropping it is the single most common cause of a label that will not scan.

Each symbology also carries start and stop patterns so the scanner can detect orientation and read the symbol in either direction. That is why the pattern this page generates is longer than the data alone would suggest.

Check digits are part of the data, not decoration

Retail symbologies build in a check digit computed from the other digits, using a weighted modulo-10 sum defined by the GS1 general specifications. A scanner recomputes it and rejects the read if it disagrees, which is what makes misreads rare. This page calculates that digit for you, and if you supply one that does not match it reports the mismatch rather than silently encoding a barcode that no retailer will accept.

Code 128 works differently: it carries a modulo-103 check symbol that the scanner verifies and then strips, so it never appears in the decoded data. Code 39 has an optional modulo-43 check character which, if you add it, is returned as part of the data for the receiving system to remove.

Choosing between the symbologies

Use Code 128 for anything internal: it encodes the full printable ASCII set and packs digits two per codeword, making it the most compact of the linear formats. Use EAN-13 or UPC-A only with a GS1 company prefix you have been allocated, because those numbers identify a product globally and are not yours to invent. ITF-14 identifies a carton of retail units rather than a single item.

Code 39 remains common in older industrial and defence systems because almost every scanner reads it without configuration, but it is the least dense format here: every character costs nine elements. Codabar survives in libraries, blood banks, and photo labs, and has no check digit of its own.

Step by step

How to use Barcode Generator

  1. Choose the symbology your scanner or trading partner expects.
  2. Type the data. For the retail formats you can leave the check digit off and let it be calculated.
  3. Adjust the module width and bar height for the size you intend to print.
  4. Download SVG for print and labels, or PNG for a screen or a document.
  5. Test the printed label with the actual scanner before committing to a production run.

Barcodes are generated and rendered entirely in your browser. No data is uploaded, and downloads are produced locally from the same pattern shown on screen.

Worked examples

Barcode Generator examples explained

A retail EAN-13 with the check digit calculated

Input

590123412345

Result

5901234123457

The thirteenth digit is derived from the other twelve. Note also that the first digit is never drawn as bars: it is encoded in the parity pattern of the left half.

Code 128 switching to the numeric subset

Input

00123456789012345678

Result

145 modules instead of the 233 that subset B alone would need

Subset C packs two digits into each codeword, so a long run of digits takes roughly half the width.

Reference

Choosing a linear symbology

Choosing a linear symbology
SymbologyEncodesCheck digitTypical use
Code 128All printable ASCIIModulo 103, hidden from the dataInternal labels, logistics, GS1-128.
Code 39A-Z, 0-9, - . space $ / + %Optional modulo 43Older industrial and defence systems.
EAN-1313 digitsModulo 10, requiredRetail products worldwide.
EAN-88 digitsModulo 10, requiredPackaging too small for EAN-13.
UPC-A12 digitsModulo 10, requiredRetail in the United States and Canada.
ITF-1414 digitsModulo 10, requiredShipping cartons of retail units.
Codabar0-9 and - $ : / . +None built inLibraries, blood banks, photo labs.

Practical Guide

How teams use Barcode Generator

Common use cases

  • Produce labels for internal assets, shelves, and bins without buying label software.
  • Generate test symbols to check that a scanner, warehouse app, or point-of-sale integration reads them.
  • Reproduce a specific barcode from a purchase order to confirm what a partner is sending.
  • Create example symbols for documentation and training material.

Checks before trusting the result

  • Keep the quiet zone: it is part of the symbol, not padding you can trim.
  • Print at a size where the narrowest bar survives your printer and the scanner distance.
  • Never invent EAN or UPC numbers for real products; they must come from your GS1 prefix.

Troubleshooting

Common mistakes and how to fix them

The label scans on screen but not once printed.
Usually resolution or ink spread. Print from the SVG rather than a scaled-up PNG, and keep the narrow bar at least 0.25mm for retail symbols.
Cropping the white margin to fit the artwork.
Quiet zones are specified in modules, typically ten either side and eleven for EAN-13. Without them a decoder cannot find the symbol edges.
Making up an EAN-13 number for a product.
Retail numbers are allocated from a GS1 company prefix. An invented number may already identify someone else’s product.
Stretching the symbol horizontally to fill a space.
Scanners read width ratios. Change the module width or the height, never the aspect ratio of individual bars.

FAQ

Barcode Generator questions, answered

Which barcode should I use for an internal label?

Code 128. It handles letters, digits, and punctuation, it is the most compact linear format, and every modern scanner reads it without configuration.

Can I invent my own EAN-13 or UPC number?

Not for anything sold. Those numbers are allocated from a GS1 company prefix and identify a product globally. For internal use, choose Code 128 instead.

Why does the tool add a digit to what I typed?

Retail symbologies require a check digit computed from the preceding digits. If you supply one that does not match, the tool reports the mismatch rather than encoding an invalid symbol.

Should I download SVG or PNG?

SVG for anything printed: it stays sharp at any size and keeps the bar edges exact. PNG is convenient for a screen, a slide, or a document that will not take vector art.

Why is my UPC-A read back with a leading zero?

Because UPC-A is an EAN-13 whose first digit is zero. Many scanners and libraries report the thirteen-digit form; both refer to the same product.

Is the data sent anywhere?

No. The pattern is computed in your browser and rendered as SVG in the page. Nothing is uploaded, so internal part numbers stay internal.

Go deeper

Specifications and guides