Type a serial number, a part number, a URL or any text and get a Data Matrix code: the small square 2D barcode used on electronics, medical devices and parts too small for a QR code. Download a PNG for labels or a vector SVG for print or laser marking. Free, no sign-up, made in your browser.
For the same data, Data Matrix needs fewer modules (the black and white squares), and its quiet zone is 1 module wide instead of the 4 a QR code needs. Measured with this page's encoder: https://example.com is 18 × 18 modules as Data Matrix and 25 × 25 as a QR code, about half the area; the serial SN-00123456 is 14 × 14 vs 21 × 21, and 16 digits fit in 14 × 14 as well. That is why it is the standard for marking small parts, circuit boards and surgical instruments. For posters and flyers aimed at the public, where people expect to point a phone camera at a QR code, use the QR code generator. For GS1 healthcare and retail labels (GTIN, batch, expiry), the data must follow GS1 rules with application identifiers; this page makes a plain Data Matrix, which scans everywhere but is not read as GS1 data.
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, ean-13 barcode generator, code 128 barcode generator, isbn barcode 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.