Type the first 12 digits of your EAN and get a scannable EAN-13 barcode, with the 13th (check) digit calculated for you. EAN-8 and ISBN book barcodes are one click away. Download a PNG or a vector SVG for packaging. Free, no sign-up, nothing uploaded.
The 13th digit catches typos: multiply the first 12 digits alternately by 1 and 3, add them up, and the check digit is whatever brings the total to the next multiple of 10. For 590123412345: 5+27+0+3+2+9+4+3+2+9+4+15 = 83, so the check digit is 7 and the full number is 5901234123457. If you type all 13 digits and the last one is wrong, this page says so instead of drawing a barcode that every till will reject. The first digits are a GS1 company prefix (the first 2-3 show which GS1 office issued it, not where the product was made): register with your national GS1 office for products you sell in shops.
Quiet zone: keep the blank margin left and right of the bars (this page adds it); a label edge or text too close is the most common reason a barcode fails. Contrast: dark bars on a light background; red bars are invisible to most laser scanners, which use red light. Size: don't squash the width to fit a label: scale the whole image instead. EAN-13 and UPC-A are designed for about 37 × 26 mm at 100%, and printing below 80% needs a good printer. Print: use the SVG, which stays sharp at any size; a stretched PNG blurs the bar edges.
Barcodes are drawn in your browser by the open-source bwip-js library (MIT), a port of Barcode Writer in Pure PostScript, which validates input and computes check digits the way the standards define them. Nothing you type is sent to a server. Where your browser supports it, the page also scans its own output with the built-in barcode reader to confirm it decodes to exactly what you typed.
See also: free barcode generator, upc barcode generator, code 128 barcode generator, isbn barcode generator, data matrix generator, QR code generator.
Need a barcode on every shipping label, ticket or invoice your app produces? Draw it in your HTML (an inline SVG from a barcode library, or an <img>) and render the page with the Shotmint API, which prints it in real Chromium so the bars come out exactly as in the browser:
curl -X POST https://shotmint.creasework.com/v1/pdf -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"html":"<h1>Order #42</h1><img src=\"https://your-site.com/barcode/42.svg\" width=\"300\">","format":"A6"}' -o label.pdf
Each PDF or screenshot is 1 credit. €5 buys 2,000 with no subscription, and credits never expire. Related free tools: invoice generator, HTML to PDF, HTML to image.
Get 25 free renders a month API docs
Can I use these barcodes on products I sell? The image is yours to use anywhere, with no attribution. But for shop shelves the number matters: EAN and UPC numbers must come from GS1, or retailers will reject them. Code 128 and the others are fine for any internal numbering.
Why does it say the check digit is wrong? EAN, UPC, ITF-14 and ISBN numbers end with a digit computed from the others. Type the number without it and it's added for you; type it in full and it's verified, so a typo can't turn into a barcode that scans as the wrong product.
Is there a limit? No limits, no watermark and no account. Make as many as you need.
Which file should I download? SVG for print and packaging (vector, sharp at any size), PNG for Word, Google Docs and label software, JPG only if a tool accepts nothing else.
Related: QR code generator, invoice generator, receipt generator, SVG to PNG, image to Base64.
UPC barcode generator · Code 128 barcode generator · Barcode generator · ISBN barcode generator · all free tools