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
- Choose a symbology: UPC-A, EAN-13 (the default), Code 128, ITF-14 or ISBN (Bookland EAN-13).
- 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.
- 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.
- Compare the Encoded value and Check digit boxes with what you expect — an invalid entry shows a red warning instead of a barcode.
- Click Download SVG; the file is named after the symbology and the full encoded number.
Each symbology expects a specific digit count
- UPC-A: 11 data digits, or 12 if you already include the check digit — either is accepted and JsBarcode fills in or verifies the twelfth.
- EAN-13: the same pattern one digit wider, 12 data digits or the full 13 including check digit.
- Code 128: any ASCII text or digits, since it's the one symbology here with no numeric check digit of its own.
- ITF-14: 13 or 14 digits, the format used on shipping cartons and case-level packaging rather than individual retail items.
- ISBN: a 13-digit ISBN starting with 978 or 979, or a legacy 10-digit ISBN, which is converted automatically into the Bookland EAN-13 form before rendering.
Which barcode type do you need?
- UPC-A: the 12-digit retail code scanned at checkouts in the United States and Canada; the number itself has to come from a GS1 company prefix you license.
- EAN-13: the 13-digit retail code used across most of the rest of the world and read by point-of-sale scanners everywhere; it also needs a GS1-assigned number.
- Code 128: a compact code for letters and digits, ideal for internal SKUs, asset tags, bin locations and shipment references that never leave your own system.
- ITF-14: the 14-digit code printed on outer cartons and cases so warehouses can scan a whole box of retail units at once.
- ISBN: books, encoded as a Bookland EAN-13 that starts with 978 or 979; the ISBN itself is issued by your country's ISBN agency.
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
- Scale the SVG proportionally in your layout or label software rather than dragging one edge, and for UPC or EAN retail codes check the printed width against GS1's permitted size range before a production run.
- Keep clear space on both sides. The SVG carries a fixed 10-pixel white margin, which equals ten modules at a 1-pixel bar width but only five at the default 2 pixels, while scanners expect roughly ten module widths of blank space.
- Print dark bars on a light background. The tool always draws black on white; avoid red bars and dark or glossy label stock, which cut the contrast a scanner reads.
- Test-scan every size and material with the scanner or app that will actually read it, including thermal label printers, where heat can make bars spread.
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
- Branded Vector QR Code Designer — Design a branded, logo-embedded QR code with high error correction, no dynamic-link subscription.
- Mock Data & Fake Database Generator — Generate up to 250,000 rows of realistic test data locally, export as SQL, JSON, CSV, or Excel.
- Credit Card / BIN Checksum Validator — Validate a card's Luhn checksum or grab a published Stripe/PayPal sandbox test number.
Content reviewed 2026-09-27.