What DotCode is
DotCode is a 2D symbology made of dots rather than continuous bars or cells, designed for high-speed inkjet/laser printing on packaging lines.
Generate it now
Enter your data to see a live DotCode preview, then export PNG or SVG.
Valid input
DotCode encodes up to 2000 characters ("The input data is too long" beyond that, confirmed directly against the pinned encoder). If you set both rows and columns explicitly, each must be from 5 to 200 and their sum must be odd -- bwip-js enforces this parity rule directly ("Sum of rows and columns must be odd").
Key options
Supported options include columns (a fixed column count instead of letting bwip-js auto-size the layout from your data). bwip-js's own real default leaves this unset and auto-computes both rows and columns.
Output and printing
Export SVG for vector-precise dot placement or PNG for digital previews.
Common uses
DotCode suits high-speed printing, packaging, and applications where a dotted 2D symbol tolerates print-head variability better than solid bars.
Example
See the live preview above, seeded with a bwip-js-verified valid value.
Size guidance
As a dot-based symbol, DotCode tolerates minor dot placement variation from high-speed printers better than continuous-line symbologies.
Troubleshooting
If generation fails, the most common cause is exceeding the 2000-character capacity, or an explicit rows/columns choice outside the 5-200 range or with an even (rows + columns) sum.
Related formats
Related formats: GS1 DotCode, Data Matrix, and QR Code.
FAQ
Does a fixed print height change DotCode's rendered size the way a fixed column count does?
Yes -- DotCode itself computes a natural height from the row count and a fixed dot pitch, but bwip-js's shared rendering step still honors an explicitly supplied height and overrides that computed value, changing the rendered geometry. This works even though DotCode's own encoder never declares a height option itself.