The component is used to create the MaxiCode 2D Barcode symbols.

MaxiCodeMaxiCode is a public domain, machine-readable symbol system originally created and used by United Parcel Service in 1992. It was designed for tracking and managing the shipment of packages, and can be quickly automatically scanned on high-speed conveyor lines.

MaxiCode is a fixed-size symbology. A MaxiCode symbol appears as a 1.11 * 1.054 inchs square, with a bullseye in the middle, surrounded by a pattern of hexagonal dots (modules). Each hexagonal dot (module) measures 0.035 * 0.041 inches.


MaxiCode has modes which are used to define the format of the message and the level of error correction within a symbol:

You can use the Modeproperty to specify the factual mode for a MaxiCode symbol. It can be one of values from 2 to 6, corresponding to the modes from 2 to 6. They are defined in the pMaxiCode unit.

Also, you can set the AutoModeproperty to true, in order to automatically select the suitable mode depending on the barcode text and the value of Mode property. And use the CurrentMode property to get the factual mode:

Symbol size

Each MaxiCode symbol is of a fixed size, having 884 hexagonal modules arranged in 33 rows around a central finder pattern. Each row consists of a maximum of 30 modules.

Also, each symbol, including the quiet zones, is of a fixed physical size, nominally 28.14mm wide, 26.91mm high. Each hexagonal dot (module) measures 0.889 * 1.041 millimeters.

Quiet zones

The MaxiCode symbology require the minimum 1 module quiet zones as measured from the outside edges. So the minimum values of LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties are equal to 1.

Error checking and correcting (ECC)

MaxiCode symbology offer two levels of error checking and correction, Enhanced Error Correction (EEC) and Standard Error Correction (SEC), which are specified by the Mode, see also the "Modes" section above.

In mode 2 and 3, the symbol employs EEC for the structured carrier message and SEC for the secondary message. In mode 4, 5, and 6, MaxiCode symbols are internally divided into a primary message and a secondary message, the mode 4 and 6 symbol employ EEC for the primary message and SEC for the secondary message. the mode 5 symbol employs EEC for both the primary and secondary messages.

Character set

In mode 2, all numeric characters can be encoded in the country code, service class, and postal code fields. All 256 of the ASCII characters can be encoded in the secondary message.

In mode 3, all numeric characters can be encoded in the country code and service class fields, all upper case letters, all numeric characters, space character, and punctuations and symbols corresponding to the ASCII values from 34 to 58 can be encoded in the postal code field. All 256 of the ASCII characters can be encoded in the secondary message.

In mode 4, 5 and 6, All 256 of the ASCII characters can be encoded in the entire message.

The default interpretation of these characters shall be:

This default interpretation corresponds to ECI 000003.

Escape sequences

If the AllowEscapeproperty is set to true, following escape sequences are supported by the component, you can insert them to the barcode text:

Extended Channel Interpretation (ECI)

The Extended Channel Interpretation (ECI) protocol allows the output data stream to have interpretations different from that of the default character set. Four broad types of interpretations are supported in MaxiCode:

The ECI protocol provides a consistent method to specify particular interpretations on byte values before printing and after decoding. The ECI is identified by an integer (up to 6 digits) which is encoded in the MaxiCode symbol by the ECI indicator block. The escape sequence "\e[ECI_Number]" is used to place the ECI indicator block to the barcode text:

ECI indicator blocks may be placed anywhere in the barcode text in a single or structured append set of MaxiCode symbols, but cannot be within the primary message (structured carrier message) for modes 2 and 3:

The AllowEscapeproperty should be set to true in order to place the ECI indicator blocks. Any ECI invoked shall apply until the end of the barcode text, or until another ECI indicator block is encountered. Thus the interpretation of the ECI may straddle two or more symbols.

Structured append

Up to eight MaxiCode symbols may be appended in a structured format to convey more data. If a symbol is part of a structured append this shall be indicated by a structured append block in barcode text. The escape sequence "\s[<Index>, <Amount>]" is used to place the structured append block to the barcode text:

The structured append block may only be placed once in the barcode text. The OnInvalidChar event will occur if the structured append block be placed more than once. The AllowEscape property should be set to true in order to place the structured append block. The valid locations for structured append block in the barcode text are specified in the following: