The component is used to create the MaxiCode 2D Barcode symbols. It's defined in the pfmxMaxiCode unit.
MaxiCode 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:
Mode 2: It encodes a structured carrier message with a numeric postal code, and an optional secondary message. A numeric postal code, a country code, and a class of service code assigned by the carrier are included in the structured carrier message.
The symbol employs enhanced error correction for the structured carrier message and standard error correction for the secondary message, see also the "Error checking and correcting (ECC)" section below.
It is designed for use in the transport industry. Primary use is US domestic destinations.
The formats of mode 2 barcode text are specified in the following list:
[)>{RS}01{GS}YYPPPPPPPPP{GS}CCC{GS}SSS{GS}MESSAGE{RS}{EOT}
For example (Date: 96; Postal code: 123456789; Country code: 840; Service class: 001; Secondary message: 'PA USA' + Chr(29) + 'UPS\123'):
'[)>' + Chr(30) + '01' + Chr(29) + '96123456789' + Chr(29) + '840' + Chr(29) + '001' + Chr(29) + 'PA USA' + Chr(29) + 'UPS\123' + Chr(30) + Chr(4)
'[)>\r01\g96123456789\g840\g001\gPA USA\gUPS\\123\r\t'
PPPPPPPPP{GS}CCC{GS}SSS{GS}MESSAGE{EOT}
For example (Postal code: 123456789; Country code: 840; Service class: 001; Secondary message: 'PA USA' + Chr(29) + 'UPS\123'):
'123456789' + Chr(29) + '840' + Chr(29) + '001' + Chr(29) + 'PA USA' + Chr(29) + 'UPS\123' + Chr(4)
'123456789\g840\g001\gPA USA\gUPS\\123\t'
Mode 3: It encodes a structured carrier message with an alphanumeric postal code, and an optional secondary message. An alphanumeric postal code, a country code, and a class of service code assigned by the carrier are included in the structured carrier message.
The symbol employs enhanced error correction for the structured carrier message and standard error correction for the secondary message, see also the "Error checking and correcting (ECC)" section below.
It is designed for use in the transport industry. Primary use is international destinations.
The mode 3 is similar to mode 2, but the postal code field encodes 6 alphanumeric characters.
The formats of mode 3 barcode text are specified in the following list:
[)>{RS}01{GS}YYPPPPPP{GS}CCC{GS}SSS{GS}MESSAGE{RS}{EOT}
For example (Date: 96; Postal code: ABC12; Country code: 840; Service class: 001; Secondary message: 'PA USA' + Chr(29) + 'UPS\123'):
'[)>' + Chr(30) + '01' + Chr(29) + '96ABC12' + Chr(29) + '840' + Chr(29) + '001' + Chr(29) + 'PA USA' + Chr(29) + 'UPS\123' + Chr(30) + Chr(4)
'[)>\r01\g96ABC12\g840\g001\gPA USA\gUPS\\123\r\t'
PPPPPP{GS}CCC{GS}SSS{GS}MESSAGE{EOT}
For example (Postal code: ABC12; Country code: 840; Service class: 001; Secondary message: 'PA USA' + Chr(29) + 'UPS\123'):
'ABC12' + Chr(29) + '840' + Chr(29) + '001' + Chr(29) + 'PA USA' + Chr(29) + 'UPS\123' + Chr(4)
'ABC12\g840\g001\gPA USA\gUPS\\123\t'
Indicates that the symbol encodes an unformatted message. The barcode message is divided into a primary message and a secondary message internally, the symbol employs enhanced error correction for the primary message and standard error correction for the secondary message.
All 256 of the ASCII characters can be used. A maximum of about 93 alphanumeric characters or about 138 digits can be encoded in the symbol.
Indicates that the symbol encodes an unformatted message. The barcode message is divided into a primary message and a secondary message internally, the symbol employs enhanced error correction for both the primary and secondary messages.
All 256 of the ASCII characters can be used. A maximum of about 77 alphanumeric characters or about 113 digits can be encoded in the symbol.
The mode 5 is similar to mode 4, but it employs enhanced error correction for secondary messages.
Indicates that the symbol encodes a message used to program the reader system. The barcode message is divided into a primary message and a secondary message internally, the symbol employs enhanced error correction for the primary message and standard error correction for the secondary message.
All 256 of the ASCII characters can be used. A maximum of about 93 alphanumeric characters or about 138 digits can be encoded in the symbol.
You can use the Mode property 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 pfmxMaxiCode unit.
Also, you can set the AutoMode property 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:
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.
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.
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.
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.
If the AllowEscape property is set to true, following escape sequences are supported by the component, you can insert them to the barcode text:
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:
In mode 2 and 3, the ECI blocks may only be invoked within secondary message. For example:
[)>01\r01\g99123456789\g123\g456\g\e[002]ABCg\e[123]DEF\r\t
In mode 4, 5 and 6, the ECI blocks may be invoked anywhere in the barcode text. For example:
ABC\e[23]DEFG\e[001]HIJKLMN
The AllowEscape property 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.
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 or OnInvalidDataChar 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:
In the mode 2 and mode 3 of MaxiCode symbols, the structured append block shall be placed at beginning or end in the barcode text, or anywhere in the secondary message. For example:
\s[2,5][)>01\r01\g99123456789\g123\g456\gABCDEF\r\t
[)>01\r01\g99123456789\g123\g456\g\s[2,5]ABCDEF\r\t
[)>01\r01\g99123456789\g123\g456\gABC\s[2,5]DEF\r\t
[)>01\r01\g99123456789\g123\g456\gABCDEF\s[2,5]\r\t
[)>01\r01\g99123456789\g123\g456\gABCDEF\r\t\s[2,5]
In the mode 4, 5 and 6 of MaxiCode symbols, the structured append block can be placed at anywhere in the barcode text. For example:
\s[2,5]ABCDEFG
ABC\s[2,5]DEFG
ABCDEFG\s[2,5]