Barcode Generator: UPC, EAN-13, Code 128, ITF-14 & ISBN

Generate print-ready UPC, EAN, Code 128, ITF-14, and ISBN barcodes with automatic check digits.

Five symbologies are on offer here — UPC-A, EAN-13, Code 128, ITF-14, and Bookland ISBN — and every one of them is drawn and validated by the JsBarcode library itself rather than a second, parallel implementation of the same check-digit math. The one exception is legacy ISBN-10, which gets reshaped into the ISBN-13 form actually printed on books before JsBarcode ever sees it, since ISBN-10 uses a checksum JsBarcode has no encoder for at all.

How to create a barcode

  1. Choose a symbology: UPC-A, EAN-13 (the default), Code 128, ITF-14 or ISBN (Bookland EAN-13).
  2. Type the code value. The numeric formats ignore spaces and hyphens, and for UPC-A, EAN-13 and ITF-14 you can leave off the last digit so the check digit is calculated for you; Code 128 keeps your text as typed, trimming only outer spaces.
  3. Set the bar width from 1 to 6 pixels per module and the height from 20 to 300 pixels, and untick Show below bars if your label prints its own caption.
  4. Compare the Encoded value and Check digit boxes with what you expect — an invalid entry shows a red warning instead of a barcode.
  5. Click Download SVG; the file is named after the symbology and the full encoded number.

Each symbology expects a specific digit count

Which barcode type do you need?

Validation comes from JsBarcode, not a second copy of the math

This tool deliberately avoids reimplementing any symbology's check-digit arithmetic itself. Every numeric barcode is handed to JsBarcode's own encoder, and JsBarcode's own validation callback is what decides whether the value is accepted — so there is no separate 'is this valid' function here that could quietly disagree with what actually gets drawn on screen.

ISBN-10 is the one input that needs work before it ever reaches JsBarcode: it uses a mod-11 checksum (where the final check character can be the letter X) that has nothing to do with EAN-13's own check digit, so a valid ISBN-10 is converted into its Bookland ISBN-13 equivalent as a pure reshaping step, and only the converted 13-digit form is passed on to be encoded and checked.

Bar width, height, and the full encoded value

Bar width and height are adjustable, and the human-readable text under the bars can be toggled off for label layouts that render their own caption. Alongside the rendered image, the tool displays the full encoded value including the appended check digit, so what a real scanner would actually read is visible on screen rather than only the shorter value you typed before the check digit was computed.

The rendered barcode downloads as an SVG, which stays crisp at any print size since it's vector output rather than a fixed-resolution raster image.

Printing barcodes that scan first time

A scannable barcode is not a registered product code

A UPC-A or EAN-13 number with a mathematically correct check digit still isn't a real, sellable GTIN unless that number range has actually been assigned by GS1 to a specific manufacturer. Printing a barcode here for a real retail product without owning a purchased GS1 prefix produces a code that will scan just fine at checkout, but collides with whatever product GS1 actually assigned that number to elsewhere.

Likewise, converting a 10-digit number into Bookland ISBN-13 form only checks that the input passes ISBN-10's own checksum — it never checks whether a book with that ISBN has actually been published or registered anywhere.

Questions people ask about Vector Barcode Generator

Can I make my own barcodes for inventory?
Yes. For stock that stays inside your own business, choose Code 128 and encode whatever SKU, bin or asset number your system uses — no registration is involved. Download one SVG per item and place them on your label sheet or print template.
Do I need a GS1 number to sell in stores or on Amazon?
For retail, generally yes: stores expect UPC or EAN numbers licensed from GS1 so each code maps to your company. Amazon checks product UPCs against GS1 records too, unless a listing qualifies for its GTIN exemption. A number invented here will scan but isn't registered to you.
Which file format should I download?
SVG is the only download, and it suits print well: the bars are vector shapes, so edges stay sharp at any size in design tools, label software and browsers. If a workflow insists on PNG or PDF, open the SVG in a vector or image editor and export it from there.
Can I generate barcodes in bulk?
No. The tool renders one barcode at a time from the value in the Code value field. For a batch, change the value and click Download SVG for each; every file is named after its encoded number, so a folder of downloads stays easy to sort.
Does the barcode have a watermark?
No. The downloaded SVG contains only the bars, the optional human-readable digits and a white background — no logo, stamp or hidden text is added, and you don't need an account to download it.
Why does entering 11 digits for UPC-A produce a 12-digit barcode?
UPC-A always encodes 12 digits: 11 data digits plus one check digit calculated from them. If you type 11 digits, JsBarcode computes and appends the twelfth automatically; if you type all 12 yourself, it verifies your check digit is correct rather than recalculating and silently overwriting it.
Can I put any text at all into a Code 128 barcode?
Yes, within reason — Code 128 accepts ASCII letters, digits, and most punctuation, and unlike the other four symbologies here it has no numeric check digit baked into the value itself, so there's no digit-count requirement to satisfy before it will render.
Does generating an ISBN barcode confirm the book actually exists?
No. The tool only checks that a 10-digit ISBN passes its own mod-11 checksum, or that a 13-digit one starts with the Bookland prefix 978 or 979 and satisfies EAN-13's check digit. Neither check looks up a real publisher database, so a structurally valid but never-issued ISBN will still produce a working barcode.
What's the difference between the check digit shown separately and the full encoded value?
The check digit is the single extra digit the symbology's checksum requires; the full encoded value is your data digits plus that check digit concatenated together, exactly as a scanner would read the complete symbol. The tool shows both so you can see how the check digit was derived and confirm the final printed number.

Related tools on BrakeTools

Content reviewed 2026-09-27.