Custom 1D symbology Generator

Generate Custom 1D symbology barcodes in your browser with live preview, validation, and PNG/SVG export.

Advanced options
Enter a value to see a live preview.
Options

These map directly to real generator options; anything not listed here is available under Advanced options above.

What this raw bar-width tool is

This is a low-level diagnostic/prototyping primitive, not a real-world symbology with its own standard or business use case -- said honestly: bwip-js's own "raw" bcid takes a string of digits where each digit is literally a bar-or-space width value in the drawn pattern, confirmed directly reading the complete function body. It draws its own bars via bwipp_renlinear() directly, with no delegation to another symbology and no character-encoding scheme of any kind.

Generate it now

Enter a string of digits 1-9 (each digit is a bar/space width) -- for example "331132131313411122131311333213114131131221323" -- to see a live preview.

Valid input

The payload alphabet is strictly the digits "1" through "9" -- "0" and any non-digit character are rejected outright (bwipp.rawBadCharacter: "Raw must contain only digits 1 to 9"). Up to 2500 characters is accepted (bwipp.rawinputTooLong rejects longer input).

Key options

Supported options include height. Real, literal default is -1 (bwip-js auto-computes a 1mm bar height when omitted). A fixed height in millimetres changes the rendered geometry. There is no includetext option at all -- this tool has no human-readable text line and no encoded character data to display one for.

Output and printing

Export SVG for vector-precise artwork or PNG for a quick proof.

Common uses

This is a diagnostic/prototyping tool for testing or visualizing an arbitrary bar-width pattern directly -- for example while developing or debugging a custom encoding scheme -- rather than a symbology anyone scans in a real business workflow. This article does not claim a business use case it does not have.

Example

See the live preview above, seeded with a bwip-js-verified valid value.

Size guidance

Each digit's own numeric value directly sets that bar or space's own module-width multiple; the overall width scales with the sum of every digit entered.

Troubleshooting

A rejected value almost always means a "0" or a non-digit character was entered -- only digits 1-9 are accepted.

Related formats

For a real, standards-backed general-purpose linear symbology, use the separately-covered Code 128 or Code 39 generators instead.

FAQ

What does each digit mean?

Each digit (1-9) is literally a bar or space width value in the drawn pattern, alternating bar/space starting with a bar -- it is not an encoded character in any information-carrying sense, and "0" is never accepted.