Make EAN-13, EAN-8, UPC-A, Code 128, Code 39 and ITF-14 barcodes as SVG or PNG
Runs in your browser. Nothing you type is sent anywhere. Updated on 25 Oct 2026.A barcode encodes a number a scanner can read. EAN-13 holds 13 digits for retail, UPC-A holds 12 for North America, and Code 128 takes letters as well. Download as SVG for printing at any size, or as PNG. Generated in your browser, so nothing is uploaded.
Choose a Barcode type: EAN-13, EAN-8, UPC-A, Code 128, Code 39 or ITF-14.
Type your number or text in the data box; for the retail types, leave off the check digit and it is added.
Set Bar width, Bar height and Margin, and turn Text under the bars on or off.
Press SVG or PNG to download, or Copy SVG to paste it into a design.
This barcode generator makes the six one-dimensional symbologies people actually need: EAN-13, EAN-8, UPC-A, Code 128, Code 39 and ITF-14. Type the data, get the barcode, and download it as SVG for print or PNG for a document. Bar width, height, margin and the human-readable text underneath are all adjustable.
Check digits are handled properly. For EAN-13, EAN-8, UPC-A and ITF-14 you can enter the data without the final digit and it is calculated, or with it and it is verified; if it is wrong you are told the digit it should be, rather than being handed a barcode that scans as the wrong product. Code 39 can add its modulo 43 check character. Code 128 always carries a check character inside the bars, which is why it is never printed.
The encoding is written out in this tool rather than pulled in from a library, so every table can be read and every symbol is tested against published examples: 5901234123457, 96385074, 036000291452, 15400141288763 and the Code 39 check character W for CODE39. Quiet zones follow the GS1 specification, and ITF-14 can print bearer bars for corrugated cardboard.
Not included, and why: QR, Data Matrix, Aztec and PDF417 are two-dimensional codes with error correction, a different job entirely, and for QR the QR Code Generator on this site already does it. GS1-128, Code 93, Codabar, MSI Plessey and UPC-E are each left out for a stated reason on the page. Everything runs in your browser; nothing you type is uploaded.
Pick the symbology and type the data without the final digit: 12 digits for EAN-13, 11 for UPC-A, 7 for EAN-8, 13 for ITF-14. The check digit is calculated and shown. If you paste the complete number instead, it is verified, and a wrong check digit is named rather than silently accepted.
For a retail product sold outside North America use EAN-13, inside it use UPC-A. For a shipping carton use ITF-14. For anything internal, such as an asset tag, a bin or an order number, use Code 128: it holds letters as well as digits and is the most compact of the six.
SVG for anything printed. It is drawn from maths, so it stays sharp at any size and the bar edges land exactly where they should. PNG is for pasting into a document or a slide. If you use PNG for print, generate it at a large module width first, because scaling a small PNG up blurs the bars.
No, and it does not pretend to. QR is a two-dimensional code with Reed-Solomon error correction, which is a different job from drawing bars. The QR Code Generator on this site makes QR codes for links, WiFi, contacts and UPI payments.
Three usual causes. The quiet zone, the blank space at each end, was cropped away; increase the margin. The bars are too narrow for the printer, so raise the module width. Or the image was a small PNG stretched to fit, which blurs the edges; use the SVG instead.
For a product sold in shops, yes. Retailers scan the number against the GS1 registry, so a made-up EAN-13 or UPC-A will either fail or point at somebody else's product. For internal use, such as your own stock or assets, any Code 128 or Code 39 value works and costs nothing.
Still stuck? Ask about Barcode Generator and anybody who knows can answer. No account needed.
Same job, other tools: GUID Generator – Generate GUIDs for .NET, SQL Server and Windows, in brace format · ULID Generator – Sortable 26-character ULIDs, monotonic within a millisecond, with a time decoder · SHA-256 Generator – SHA-256 hash of any text or file, in hex or Base64 · Cron Expression Generator – Generate a cron expression by choosing when the job should run · Open Graph Tag Generator – Generate og:title, og:description, og:image and og:url tags.
On the related tools: Sitemap Index Generator – Split a large site into numbered sitemaps with an index file.
In the collection Barcode and QR Code Tools.