Code 49 Generator

Generate Code 49 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 Code 49 is

Code 49 is a stacked linear symbology that re-flows a restricted alphabet (digits, capital letters, and a handful of symbols, plus the full remaining ASCII range via a 2-codeword shift sequence) into 2 to 8 short rows stacked on top of each other, separated by thin guard bars -- a narrower, taller footprint than a single-row linear symbol needs. It also supports an optional Structured Append Mode (SAM) for linking a message across multiple physically separate symbols. bwip-js draws it with its own dedicated matrix renderer -- confirmed directly: bwipp_code49 builds its own row/codeword layout and calls bwipp_renmatrix() itself, with no delegation to another symbology's own function.

Generate it now

Enter any text or data to see a live preview -- Code 49 accepts any ASCII byte value 0 to 127.

Valid input

Up to 500 bytes is accepted, and every byte must be ASCII value 0-127 (bwipp.code49badCharacter rejects anything above that, bwipp.code49emptyData rejects an empty value, bwipp.code49inputTooLong rejects longer input). How many rows that data needs depends on the row count: leaving rows on its automatic default lets bwip-js pick the smallest row count (2-8) that fits; fixing rows to a value too small for the payload is rejected outright rather than silently re-encoded.

Key options

Supported options include rows, rowheight, and sepheight. Real, literal defaults: rows 0 (auto-select the smallest row count, 2-8, that fits), rowheight 8 (points per data row), sepheight 1 (points for the thin separator bar drawn between rows). There is no includetext option at all -- Code 49 has no human-readable text line of its own. A separate, mutually exclusive pair of options (sam, a 2-digit "Nth of M" code; append) supports linking a long message across multiple physically separate Code 49 symbols.

Output and printing

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

Common uses

Code 49 predates Code 16K (a later, similarly stacked symbology already covered separately in this catalog) and saw use in small-item marking -- electronics components, small parts -- where the item is too narrow for a full-length linear barcode. Its optional Structured Append Mode exists specifically for messages too long for a single symbol's own row limit, split across several separately-printed symbols that a compatible reader reassembles.

Example

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

Size guidance

Each row uses the same fixed module width as every other row; only the number of rows (2 to 8) and the row/separator heights change the overall bounding box.

Troubleshooting

A rejected value with a fixed rows setting usually means the payload needs more rows than the fixed count allows -- either raise rows or leave it on its automatic default. Combining sam and append together is also rejected outright -- they are mutually exclusive linking mechanisms.

Related formats

Related formats: the separately-covered Code 16K generator (a later, similarly stacked symbology built on Code 128's own character set instead of Code 49's own alphabet).

FAQ

Why was my value rejected when a fixed row count is set?

A fixed row count must have enough capacity for the encoded payload -- Code 49's own automatic default already picks the smallest row count that fits, so a fixed value lower than that is rejected rather than silently overridden.

Can I use lowercase letters or punctuation?

Yes -- Code 49 accepts the full ASCII range 0-127. Characters outside its own restricted 49-entry base alphabet (digits, capital letters, and a handful of symbols) are represented using an extra shift codeword, so mixed-case or punctuation-heavy input renders a larger symbol than the same-length all-uppercase, all-digit input would.