Barcode generator

Twenty-two symbologies - retail, logistics, 2D, postal and pharmaceutical - generated from your own data and downloadable in eleven formats: PNG, JPG, WebP, GIF, BMP and TIFF as pixels, and SVG, PDF, EPS, AI and DXF as vector geometry that stays sharp at any size. Every encoder is implemented here rather than wrapped from a library, which is why the details that decide whether a barcode scans - quiet zones, check digits, module widths - are handled rather than approximated. Twenty of the twenty-two come from their published specifications; PDF417 and Compact PDF417 are the exception, because their codeword table cannot be derived from the published rule and was recovered from observed symbols instead, then checked pattern by pattern.

EAN-13 carries twelve digits plus a check digit computed with the alternating 1-3 weighting the standard defines. Enter twelve and the thirteenth is calculated for you; enter thirteen and the check digit is verified, so a transposed pair is caught rather than encoded. The bar patterns come from the L, G and R sets, with the first digit selecting which pattern each of the left six uses — the part of EAN-13 that is easy to get wrong and impossible to notice by eye.

Code 39 encodes digits, uppercase letters and a handful of punctuation, with the start and stop delimiters the format requires. It needs no check digit, which is why it survives in industrial settings where a scanner may be reading a label that has been handled all day.

Quiet zones are included at full width. A barcode with no quiet zone frequently will not read at all, and it is the single most common reason a barcode that looks perfect on screen fails against real hardware — a scanner needs blank space to find the symbol's edges before it can decode anything between them.

For testing: a known-good barcode with a verified check digit, and the same value with a deliberately wrong one, are the two fixtures a validation path actually needs.

Open the generator → · All formats