Seven symbologies, each with different rules
The generator supports seven barcode symbologies — CODE128, EAN-13, EAN-8, UPC-A, CODE39, ITF (Interleaved 2 of 5), and CODABAR — and each accepts a different kind of value. CODE128 is the most flexible: any non-empty text, including letters, numbers, and symbols, which makes it the right default for SKUs and order references that mix characters. The other six are numeric or restricted retail and logistics formats, each validated locally before it is ever sent to the barcode engine.
Retail formats: EAN-13, EAN-8, and UPC-A
EAN-13 requires 12 or 13 digits, EAN-8 requires 7 or 8, and UPC-A requires 11 or 12 — the shorter length in each pair is the value without its trailing check digit, the longer includes it. These are the codes printed on consumer packaging worldwide (EAN-13 and EAN-8 outside North America, UPC-A within it), and the digit-count validation catches the single most common input mistake: pasting a product code with one digit too many or too few.
Logistics and inventory formats: CODE39, ITF, and CODABAR
CODE39 accepts uppercase letters, digits, spaces, and the symbols - . $ / + %, which covers most inventory and asset-tag labels without needing a lookup table for allowed characters. ITF (Interleaved 2 of 5) is digits-only and specifically requires an even count, because the format encodes two digits per interleaved bar pattern — an odd-length value has no valid encoding and is rejected before generation. CODABAR requires a start and end "guard" character, one of A, B, C, or D, wrapping the numeric body — it is still common on library cards and some healthcare specimen labels.
Sizing, labels, and what makes a barcode fail to scan
Two sliders control the physical geometry that a scanner actually reads: Scale (1 to 5) sets the width of the barcode's narrowest bar, and Height (8 to 24) sets how tall the bars are. Every barcode is also rendered with an 8-unit padding on all sides, the quiet zone a scanner needs to detect where the code begins and ends; a barcode cropped tighter than that, or scaled down until adjacent bars blur together, is the most common reason an otherwise-valid code fails to scan. The "Show human-readable text" toggle prints the encoded value beneath the bars for a human to read — purely cosmetic, it plays no part in what a scanner decodes.
What the client actually validates — and what it does not
The length and character-set checks described above run entirely in the browser before a value ever reaches the barcode engine, so an EAN-13 with 10 digits or a CODABAR without guard characters is rejected immediately with a specific error message rather than producing a broken image. What this validation does not do is verify a check digit's arithmetic — if you supply 13 digits for EAN-13, the tool accepts them on length alone and hands them to the underlying barcode engine, which actually renders the bars for whatever check-digit position you provided.
Bulk generation and export formats
Paste one value per line to generate an entire batch against the currently selected format in a single pass. Each row can be downloaded individually as SVG or converted to PNG on demand, or the whole valid batch can be exported at once: all SVGs, all PNGs, or a single ZIP archive containing both formats for every row, named from the barcode's own value so files stay identifiable without opening them.