Repository navigation
DotCode
Terry Burton edited this page Oct 24, 2026
·
22 revisions
The DotCode symbology is a 2D matrix-style barcode that can encode any byte values.
Also known as: Ribbon Code.
Uses:
- High-speed marking on production lines, such as by inkjet.
- Unit packets of tobacco products under EU traceability Regulation (EU) 2018/574.
Variants:
- GS1 DotCode is a variant of DotCode that should be used when encoding data that is in GS1 Application Identifier standard format.
Standards: AIM - ISS DotCode.
- The data field can contain any byte values. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1. When supported by the receiver, characters from other code pages can be encoded using Extended Channel Interpretation (ECI).
- When the parse option is specified, any instances of
^NNNin the data field are replaced with their equivalent byte value. This is useful for specifying unprintable characters. - When the parsefnc option is specified, non-data function characters can be specified by escape sequences:
-
^FNC1: FNC1. Recommendation: Consider GS1 DotCode for encoding GS1 AI syntax data. -
^FNC3: FNC3 -
^ECI000000to^ECI999999: ECI indicators -
^FNC@: FNC1 in second position, written before an AIM application indicator of one letter or two digits at the start of the data or of a message segment that follows FNC3, e.g.^FNC@T...or^FNC@99.... See FNC1 in second position. - ECIs are not available with FNC1 in first or second position.
-
- The readerinit option denotes that the symbol is used for programming the barcode reader, by placing FNC3 in the first position. It is not available with FNC1 in first or second position, nor with Structured Append.
- The ratio option sets the width-to-height ratio of the symbol. The default is 1.5.
- The columns and rows options are used to specify the size of the symbol, each from 5 to 200, with an odd sum. When these are not specified a symbol is generated that maintains the selected aspect ratio, except that a dimension that would exceed 200 is held at 200. Data that does not fit within 200 rows and 200 columns is refused.
- The specification places no limit on the size of a symbol, so the limit of 200 rows and columns can be changed by defining
dotcode.maxrowsanddotcode.maxcolsin the global context:/uk.co.terryburton.bwipp.global_ctx << /dotcode.maxrows 300 /dotcode.maxcols 1000 >> def
- The mask option selects mask
0to3instead of the best one. - Deprecated. The fast option is used to enable the optional high-speed symbol masking algorithm.
- The sampos and samtotal options make the symbol one of a Structured Append sequence of 2 to 35 symbols, which a reader reassembles into a single message. Both are required:
- sampos is the position of the symbol in the sequence, from 1 to samtotal.
- samtotal is the number of symbols in the sequence.
- The position and total are encoded at the end of the data, followed by FNC2.
- Structured Append is not available with FNC3, for reader initialisation or symbol separation, nor for GS1 DotCode symbols.
A basic symbol:
Data: This is DotCode
Options: inkspread=0.16
Encoder: dotcode
A symbol with custom aspect ratio:
Data: Code 2.5
Options: ratio=2.5
Encoder: dotcode
Home | Download | Documentation (PDF) | Source | Support | Issues | Online Barcode Generator
Point of Sale
GS1 DataBar
- GS1 DataBar Omnidirectional
- GS1 DataBar Stacked Omnidirectional
- GS1 DataBar Expanded
- GS1 DataBar Expanded Stacked
- GS1 DataBar Truncated
- GS1 DataBar Stacked
- GS1 DataBar Limited
- GS1 North American Coupon Code
Supply Chain
- EAN-14
- ITF-14
- SSCC-18
- GS1-128
- GS1 DataMatrix
- GS1 DataMatrix Rectangular
- GS1 QR Code
- GS1 Digital Link Data Matrix
- GS1 Digital Link QR Code
- GS1 DotCode
Two-dimensional Symbols
- Aztec Code
- Compact Aztec Code
- Aztec Runes
- Data Matrix
- Data Matrix Rectangular
- Data Matrix Rectangular Extension
- DotCode
- Han Xin Code
- PDF417
- Compact PDF417
- MicroPDF417
- QR Code
- Micro QR Code
- Rectangular Micro QR Code
- Swiss QR Code
- EPC QR Code
One-dimensional Symbols
Postal Symbols
- Australia Post
- Canada Post PostBar
- CEPNet
- DPD Parcel Label
- Deutsche Post Identcode
- Deutsche Post Leitcode
- Japan Post
- Korea Post
- MaxiCode
- UPS MaxiCode
- Royal Mail
- Royal Mail Mailmark
- Royal Mail Mailmark 4-state
- Royal TNT Post
- UPU S10
- USPS Intelligent Mail
- USPS POSTNET
- USPS PLANET
- USPS FIM symbols
Pharmaceutical Symbols
- Italian Pharmacode
- Pharmacode
- Two-track Pharmacode
- PZN
- PPN-Code
- HIBC Code 39
- HIBC Code 128
- HIBC PDF417
- HIBC MicroPDF417
- HIBC QR Code
- HIBC Data Matrix
- HIBC Data Matrix Rectangular
- HIBC Codablock F
- HIBC Aztec Code
Less-used Symbols
- BC412
- Channel Code
- Codabar
- Codablock F
- Codablock A
- Code 11
- Code 16K
- Code 25
- Ultracode
- IATA 2 of 5
- Marks & Spencer
- Matrix 2 of 5
- Datalogic 2 of 5
- COOP 2 of 5
- Code 49
- Code One
- Grid Matrix
- Datastrip 2D
- MSI Plessey
- Plessey
- Anker Code
- PosiCode
- Telepen
- Telepen Numeric
- Kodak Patch Codes
- VIN
- LOGMARS
- DX Film Edge
- Aztec Mesas
GS1 Composite Symbols
- EAN-13 Composite
- EAN-8 Composite
- UPC-A Composite
- UPC-E Composite
- GS1 DataBar Omnidirectional Composite
- GS1 DataBar Stacked Omnidirectional Composite
- GS1 DataBar Expanded Composite
- GS1 DataBar Expanded Stacked Composite
- GS1 DataBar Truncated Composite
- GS1 DataBar Stacked Composite
- GS1 DataBar Limited Composite
- GS1-128 Composite
Raw Symbols
Partial Symbols