Create scannable CODE128, EAN-13, and UPC-A barcodes instantly in your browser. Type your data, tune the size and colors, then download a print-ready PNG or SVG - all processing stays on your device.
Technical Specifications
Symbology rules and drawing geometry used for every barcode.
| Specification |
Details |
| Supported formats |
CODE128 (Code Set B), EAN-13, UPC-A - 3 symbologies |
| CODE128 charset |
ASCII 32 to 126: uppercase, lowercase, digits, and common symbols; up to 80 characters per barcode |
| EAN-13 input |
12 digits (check digit computed) or 13 digits (check digit verified); spaces and hyphens ignored |
| UPC-A input |
11 digits (check digit computed) or 12 digits (check digit verified); spaces and hyphens ignored |
| Check digits |
CODE128 Mod-103 weighted checksum; EAN-13 and UPC-A alternating 1/3 weighted checksum |
| Module geometry |
CODE128: 11 modules per symbol plus a 13-module stop; EAN/UPC: 95 modules with 101 / 01010 / 101 guards |
| Quiet zone |
10 modules each side for CODE128, 9 modules each side for EAN/UPC - always drawn, never cropped |
| Render engine |
Plain JavaScript with HTML5 Canvas for preview and PNG plus hand-built SVG markup for vector export |
| Processing location |
100% client-side JavaScript in your browser memory; nothing is uploaded |
| Export |
Copy SVG markup, download PNG raster, download SVG vector, or copy any recent barcode value |
| Usage limit |
None - generate unlimited barcodes for free, no signup required |
Understanding Barcode Formats
Linear barcodes store data in the widths of dark bars and light spaces. A scanner measures each run of black and white, decodes the pattern into characters, and checks the built-in check digit to catch misreads. The three formats here cover almost every everyday labeling need, from warehouse shelves to retail checkout.
CODE128 for text and inventory
CODE128 Code Set B encodes the full printable ASCII range: letters, digits, and symbols such as dashes and slashes. Each symbol is 11 modules wide with three bars and three spaces, framed by a start pattern, a Mod-103 check symbol, and a 13-module stop. Because it packs text densely, it is the default choice for serial numbers, asset tags, order IDs, and shelf labels such as TTZ-2026-001.
EAN-13 and UPC-A for retail products
EAN-13 encodes 13 digits with left-side odd/even patterns selected by the leading digit and right-side inverse patterns, guarded by 101, 01010, and 101 markers. UPC-A is its 12-digit North American counterpart and is bar-for-bar identical to an EAN-13 with a leading zero, which is why most checkout scanners read both. Enter the digits without the final check digit and the tool computes it; enter the full code and the tool verifies it when validation is on.
When to use which format
Use CODE128 for anything containing letters: SKUs, batch codes, ticket numbers, and internal tracking. Use EAN-13 for products sold in stores outside North America and UPC-A for products sold in the United States and Canada. For links, contact cards, or Wi-Fi credentials, a two-dimensional code works better - try the QR Code Generator instead.
Honest limitations
This tool draws standard retail and text barcodes only: it does not create GS1-128 application identifiers, shipping container codes, or 2D symbols. CODE128 input is capped at 80 characters to keep the image printable, and digit formats accept digits alone. Always test-scan a printout at final size before a large print run, since low contrast, glossy lamination, or resized images can defeat even a correct barcode.
Privacy and Client-Side Security
Privacy Guarantee: All generation occurs locally inside your browser. Your barcode data and settings are never transmitted, stored, or recorded on remote servers.
Many online barcode sites render your code on a server, which exposes product numbers and serials to a third party. TinyToolzz keeps everything in-page: check-digit math, bar layout, Canvas drawing, and SVG building run with plain JavaScript in your tab's memory.
Because nothing is uploaded, there is no waiting, no account, and no copy of your codes retained anywhere. Your values exist only in the tab's memory and are discarded when you close the page or click Clear.