On this Page

    MaxiCode

    (As of 3.0.004.12)

    It is expected that the major use of MaxiCode will be for shipping labels to be shipped by UPS.

    The MaxiCode specification defines modes 0 through 6, but modes 0 and 1 are now obsolete. DocOrigin can generate MaxiCode in Modes 2, 3, 4 and 5. Mode 6 is used for programming hardware devices and is not supported in DocOrigin.

    UPS labels use modes 2 and 3.

    Merge expects the data for a MaxiCode field to be supplied in the following format for UPS labels:

    aaaaaaaaa|bbb|ccc|Tracking Number|SCAC|shipper number|day of pickup|shipment id number|Package n/x|weight|address validation|street address|city|state

    bbb is a three-digit country code (ISO 3166-1); 840 meaning, USA for example.

    Prior to version 3.1.002.06

    if bbb is 840 (USA) then aaaaaaaaa is a 9-digit US zip code. 5 digit zip codes must be padded with 4 trailing zeroes.

    if bbb != 840 then aaaaaaaaa is a 9-character postal code made up of any combination of digits 0-9 or A-Z, with trailing spaces to pad it to 9 characters long.

    Beginning with version 3.1.002.06

    if bbb is 840 (USA) then aaaaaaaaa is a 5-digit or 9-digit US zip code. No padding is required.

    if bbb != 840 then aaaaaaaaa is up to 9 characters long, made up of any combination of digits 0-9 or A-Z. It may have trailing spaces but they are not required.

    ccc is a three-digit class of service.

    Tracking Number and SCAC are required by UPS, the remaining fields are optional. Contact UPS for further details about the content.

    The characters shown below as <RS> <GS> and <EOT> are ASCII control characters from the C0 control set. These characters are not printable characters and may present some challenges to scanners. Many scanners will need to be programmed to send ASCII control characters to their host. Specialized software may be required to capture control characters, and display them.

    When a Mode 2 or 3 MaxiCode symbol is generated for UPS use, it is required to be pre-fixed with the header:

    [)><RS>01<GS>96

    The data sequences are terminated with:

    <RS><EOT>

    As shown above, Merge expects the data items to be separated with | characters (the pipe symbol). Merge will replace the pipe symbols with the ASCII <RS> character as required. DocOrigin Merge will insert the header and trailer characters as necessary.

    Data supplied to Merge, in a MaxiCode field, would look like:

    123456789|840|001|1Z12345678|UPSN|06X610|159|1234567|1/2|3.1|Y|634 MAIN ST|YORK|PA

    Data from a scanned, properly generated, Mode 2 MaxiCode symbol might look like:

    [)><RS>01<GS>96123456789<GS>840<GS>001<GS>1Z12345678<GS> UPSN<GS>06X610<GS>159<GS>1234567<GS>1/2<GS>3.1<GS>Y<GS>634 MAIN ST<GS>YORK<GS>PA<RS><EOT>

    DocOrigin provides two MaxiCode configuration settings: MaxiCodeMode and MaxiCodeCharacterSet.

    MaxiCodeMode defines which mode of MaxiCode barcode to produce. It can be set in the .prt file or via setParm. The default value is auto. With that setting in effect:

    Prior to version 3.1.002.06

    DocOrigin Merge will examine the Zip/Postal code provided, if it is numeric it will generate a Mode 2 symbol. If it contains any non-numeric characters it will generate a Mode 3 symbol.

    Prior to version 3.1.002.06, we recommend that you explicitly set MaxiCodeMode.

    Beginning with version 3.1.002.06

    DocOrigin Merge will examine the Zip/Postal code provided, and the Country Code, if the Country Code is 840 (USA), and the Zip Code is 5 numeric digits or the Zip Code is 9 numeric digits, it will generate a Mode 2 symbol. If the Country Code is not 840, It will generate a Mode 3 symbol.

    Other valid values for MaxiCodeMode are: 2, 3, 4 or 5 which force the generation of a symbol of the appropriate mode.

    MaxiCodeCharacterSet defines the character encoding that the data will be translated to before the MaxiCode symbol is created. The default is "8859-1". Other valid values can be found by running "uconv -l" as supplied with this install of DocOrigin. Encodings which produce NULL bytes will not create correct MaxiCode symbols. MaxiCodeCharacterSet can be defined in the .prt file or set via setParm.