Encode any text into 13 barcode symbologies, lay the symbols out in a grid and download the result as a PNG to test a scanner — entirely in your browser.
Randomize values encodes a fresh sample value of the selected symbology in every cell; Random types picks a random symbology per cell. Both leave the text field untouched. The grid is limited to 6 rows and 6 columns.
Generating…
Upload the downloaded PNG to the online barcode scanner — it reports the decoded text, the symbology, the bounding box and the decoding time.
| Symbology | Kind | Input |
|---|---|---|
| QR Code | 2D | Any text or URL. Error correction is applied automatically, so the symbol still decodes when part of it is damaged. |
| Data Matrix | 2D | Any text. The compact square symbol used on small parts and labels. |
| PDF417 | 2D | Any text. A stacked linear symbol, the format used on AAMVA driver licenses and many ID documents. |
| Aztec Code | 2D | Any text. Needs no quiet zone around the symbol. |
| MaxiCode | 2D | Up to 93 characters. A fixed-size hexagonal grid, originally designed for parcel sorting. |
| DotCode | 2D | Any text. A dot pattern that tolerates high-speed inkjet printing on curved surfaces. |
| EAN-13 | 1D | 12 digits — the 13th is the check digit and is calculated for you. A 13-digit value is accepted when its check digit is correct. |
| Code 128 | 1D | Any ASCII text. The densest common linear symbology. |
| Code 39 | 1D | Digits, capital letters, spaces and - . $ / + %. Lowercase letters are
rejected. |
| ITF | 1D | Digits. An odd count is padded with a leading zero, which is what the standard prescribes. |
| MSI | 1D | Digits. A Mod-10 check digit is appended, which is what readers expect to find; it comes back as the last character of the decoded text. |
| Pharmacode | 1D | A single number from 3 to 131070. Used on pharmaceutical packaging. |
| Codabar | 1D | Digits and - $ : / . +, wrapped in the start and stop characters
A, B, C or D — for example
A1234567890B. |
This page is a raw symbology encoder: whatever you type is written into the symbol as-is, with no application-layer structure. It does not build GS1 element strings, AAMVA payloads, vCards or label layouts — so it is the right tool for producing test symbols for a reader, and the wrong tool for producing a compliant shipping label. For a generator that does assemble a structured payload, see the driver license generator, which writes AAMVA PDF417 barcodes.
All 13 symbologies are produced by bwip-js, the JavaScript port of BWIPP. Barcodes are drawn on an
HTML5 canvas at a module scale wide enough to survive a re-upload or a printout: the exported
PNG is rendered at the natural symbol size, and Download PNG saves that canvas
1:1, so you can drop it straight into a document or a scanner test.
A long payload makes a wide symbol — a 120-character Code 128 is over 1300 px across even at the smallest module scale. Rather than shrinking the finished image (which would blur the bars), any oversized symbol is re-rendered at the largest whole-number module scale that fits, so the exported PNG keeps crisp, evenly spaced bars at any grid size.
Nothing you type leaves the browser: the page has no upload, no server call and no storage. Keep test payloads synthetic — a barcode is not a secret, and anyone with a phone can read what you put in it.