What Code 25 (2 of 5) is
Code 25, sometimes called "Standard 2 of 5" or "Industrial 2 of 5," is a digit-only linear symbology where every character is drawn from a fixed set of wide/narrow bar patterns -- 5 bars per digit, 2 of them wide (hence the name). This is the real, standalone base function of an entire family: industrial2of5, iata2of5, matrix2of5, coop2of5, and datalogic2of5 (all already covered separately in this catalog) each force this same encoder to one of 5 fixed bar-pattern tables and hide the choice from the user. This page is the one place that choice is a real, free option -- confirmed directly: bwipp_code2of5 declares its own "version" option with exactly those 5 accepted values, and its own function draws its own bars directly with no further delegation.
Generate it now
Enter a digit-only value to see a live preview, or turn on the computed check digit to have bwip-js append one automatically.
Valid input
Up to 500 digits is accepted, and every character must be 0-9 (bwipp.code2of5badCharacter rejects anything else, bwipp.code2of5emptyData rejects an empty value, bwipp.code2of5inputTooLong rejects longer input). The check digit is a weighted Mod-10 calculation (each digit from the right alternately weighted by 3 or 1); with the computed check digit turned on, bwip-js always computes and appends a fresh one from the data you enter.
Key options
Supported options include version, includecheck, includetext, includecheckintext, and height. Real, literal defaults: version "industrial" (the 5 accepted values are industrial, iata, matrix, coop, and datalogic -- bwipp.code2of5badVersion rejects anything else), includecheck false, includetext false, includecheckintext false, height sentinel -1 (auto). Each version selects a different bar-pattern table for the same digit-only data -- switching versions changes the rendered bar pattern even though the encoded digits are identical.
Output and printing
Export SVG for vector-precise label artwork or PNG for a quick proof.
Common uses
Code 25/Code 2 of 5 is an older industrial symbology, still found on warehouse totes, work-in-process travelers, and some photofinishing envelopes -- environments with existing scanning infrastructure tuned to this bar pattern rather than a newer symbology. Its 5 version variants exist because different equipment vendors (COOP retail co-ops, Datalogic scanners, IATA air-cargo systems) each standardized on a slightly different bar-pattern table for the same underlying digit data.
Example
See the live preview above, seeded with a bwip-js-verified valid value.
Size guidance
Every digit uses the same fixed bar-pattern width for the selected version; only the digit count, and whether a check digit is appended, changes the overall symbol length.
Troubleshooting
A rejected value almost always means a non-digit character somewhere in the input. If you are pairing this generator with a reader validating against a specific version's check-digit scheme, confirm the version selected here matches the reader's own expected version -- the bar patterns differ between versions even for identical digit data.
Related formats
Related formats: the separately-covered Industrial 2 of 5, IATA 2 of 5, Matrix 2 of 5, COOP 2 of 5, and Datalogic 2 of 5 generators, each of which is this exact same encoder with one version fixed and hidden.
FAQ
What is the difference between this and Industrial 2 of 5?
Industrial 2 of 5 is this exact same encoder with "version" permanently fixed to "industrial" -- this page is the only one where all 5 real bar-pattern versions (industrial, iata, matrix, coop, datalogic) are a free choice.
Does the check digit get validated or just computed?
By default bwip-js only computes and appends a fresh check digit from the data you enter -- it does not check an existing trailing digit against a value you already have. A separate, lower-level option exists for that second use case, but it is not part of this generator's typed control panel.