
MaxiCode is a fixed-size
(approximately 1 inch by 1 inch) 2D matrix barcode symbology which is made up
of offset rows of hexagonal modules arranged around a unique finder pattern.
MaxiCode was originally created and used by United Parcel Service (UPS) for
tracking and managing the shipment of packages.
MaxiCode barcode can encode 256 international characters; values 0-127, in
accordance with ANSI X3.4, i.e. all 128 ASCII characters and values 128-255 in
accordance with ISO 8859-1 (Latin Alphabet No. 1). Although the capacity of a
MaxiCode symbol is not as high as other 2D matrix barcode symbologies, it was
primarily designed to encode address data. The maximum data capacity in a
single MaxiCode Symbol is 93 alphanumeric characters or 138 numeric characters.
MaxiCode features "Structured Append" which allows files of data to be
represented in up to 8 MaxiCode symbols. The original data can be correctly
reconstructed regardless of the order in which the symbols are scanned.
MaxiCode symbols are divided into a primary and a secondary message featuring
Reed-Solomon error correction. In general, the Primary message normally encodes
a postal code, a 3 digit country code and a 3 digit class of service number
while the Secondary message normally encodes address data and any other
required information. In addition, MaxiCode has modes which are used to define
the structuring of the data and error correction within a symbol. The following
modes are available:
Special Message Structure when using Mode 2 and 3 (Structured Carrier Message)
MaxiCode Mode 2 and Mode 3 shall be reserved for use as a destination sortation
symbol for use by carriers in the transport industry. In these modes, the
primary message is always data specific and encodes postal code, country code
and service class. The three primary data elements should be supplied in the
above order separated by GS (Group Separator - ASCII 29) immediately followed
by the secondary message contents. In addition, each data element shall be of
the correct type, e.g. postal codes in mode 2 must be all numeric and in mode 3
it must be alphanumeric.
There are two standard message formats when using Mode 2 and Mode 3:
-
Messages Beginning with "[)>RS01GS": Messages which begin with the
seven encoded data characters"[)>RS01GS" conform to particular open system
standards and has the following structure:
-
[)>RS (Message Header)
-
01GS (Format Header)
-
2-digit representing the year (YY) of a date
-
Postal/Zip Code:
-
If Mode 2 (NUMERIC ONLY): 5-digit zip code + 4-digit zip code extension (if
none exists, four zeros 0000 must be specified)
-
If Mode 3 (ALPHANUMERIC): 6-alphanumeric characters zip code (A through Z or 0
to 9)
-
GS
-
3-digit country code (from ISO 3166) - NOTE: Mode 2 supports the US Country
Code (840). For other country codes please use Mode 3 instead.
-
GS
-
3-digit class of service
-
GS
-
<tracking number> (Mandatory Data for UPS)
-
GS<SCAC> (Mandatory Data for UPS)
-
GS<UPS shipper number>
-
GS<Julian day of pickup>
-
GS<shipment ID number>
-
GS<n/x> (Package n/x)
-
GS<package weight>
-
GS<address validation>
-
GS<ship to street address>
-
GS<ship to city>
-
GS<ship to state>
-
RS
-
EOT (End of Message)
Where GS (ASCII 29) is used to separate fields in a message; RS (ASCII 30) is
used to separate format types; and EOT (ASCII 4) is the end of transmission
characters.
-
Messages NOT Beginning with "[)>RS01GS":
-
Postal/Zip Code:
-
If Mode 2 (NUMERIC ONLY): 5-digit zip code + 4-digit zip code extension (if
none exists, four zeros 0000 must be specified)
-
If Mode 3 (ALPHANUMERIC): 6-alphanumeric characters zip code (A through Z or 0
to 9)
-
GS
-
3-digit country code (from ISO 3166) - NOTE: Mode 2 supports the US Country
Code (840). For other country codes please use Mode 3 instead.
-
GS
-
3-digit class of service
-
GS
-
<The secondary message data in the required format>
-
EOT (End of Message)
Where GS (ASCII 29) is used to separate fields in a message and EOT (ASCII 4)
is the end of transmission characters.

Sample of a MaxiCode barcode
Note: Please refer to the Class
Reference documentation for more information about the properties and methods
stated in this document.
In order to get a MaxiCode barcode image, please follow these
steps:
-
Set the Symbology property to MaxiCode
-
Set the MaxiCodeMode
property
-
Set the Code property with the value to encode. NOTE:
To encode Mode 2 or 3, then please specify the message in the correct
format/structure (more info above)
-
If desired, you can use the tilde character "~" to specify special characters
in the input data e.g. ~013 is used to represent the ASCII character with the
decimal value 13 (CR). To do that you must set the MaxiCodeProcessTilde property
to True.