Skip to content

Aztec Mesas

Terry Burton edited this page Oct 20, 2026 · 3 revisions

Aztec Mesas

Aztec Mesas supplement a linear host symbol with a two-dimensional field of layers above it, and optionally below it, that is an Aztec Code symbol rearranged to the width of the host. The host remains readable by conventional scanners and the Mesa is read by imagers.

Also known as: Mesas.

Standards: AIM ITS/99-003 - ISS Aztec Mesas.

Data and Options

  • The data field consists of a primary and secondary component separated by a pipe | character.
    • The data for the primary component (preceding the pipe) is entered in the format of the host symbology. A pipe character in it is given as ^124 with the parse option.
    • A host that encodes only zeros, or nothing, is not transmitted by readers, so that the Mesa functions as a stand-alone symbol. The zeros are given as digits, or as ^048 with the parse option; a host that transmits only zeros from raw codewords or after FNC1 is not treated as one.
    • The data for the 2D component (following the pipe) can contain any extended ASCII data. 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 ^NNN in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.
  • When the parsefnc option is specified, non-data function characters can be specified by escape sequences:
    • ^FNC1: FNC1. Readers transmit the data of the host before that of the 2D component, so FNC1 at the start of the 2D component is in first position only with a host that encodes only zeros. Otherwise it is a field separator.
    • ^ECI000000 to ^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 2D component, with a host that encodes only zeros, e.g. ^FNC@T... or ^FNC@99.... See FNC1 in second position.
    • ECIs are not available with FNC1 at the start of the 2D component, or in second position.
  • The parse and parsefnc options apply to both components.
  • The host option selects the host symbology, which sets the width, and therefore the capacity, of the Mesa:
    • host=code128 - Code 128 (default)
    • host=code39 - Code 39
    • host=code93 - Code 93, always with its check characters
    • host=code93i - Code 93i, without a 93i companion flag
    • host=interleaved2of5 - Interleaved 2 of 5, of at least two pairs of digits
    • host=ean13 - EAN-13, without an add-on
    • host=upca - UPC-A, without an add-on
  • The includecheck, validatecheck, errorcorrection, suppressc, unlatchextbeforec and raw options are passed to the host symbology. The human readable text of the host is not shown.
  • The hostwidenarrow option sets the wide-to-narrow ratio of a Code 39 or Interleaved 2 of 5 host, 2 or 3, by default 3.
  • The hostheight option sets the height of the host in modules, by default the greater of 12 and 15% of its width.
  • The eclevel option is used to specify the percentage of error correction to be applied when expanding the data, from 5 to 95, by default 23.
  • The ecaddchars option is used to specify how many additional error correction characters to add after applying the eclevel percentage, 3 or more, by default 3.
  • The layers option is used to specify a particular number of layers in which to encode the data, between 1 and 32. By default the encoder will create a symbol with the minimal number of layers to encode the given data. A Mesa holds at most 4095 codewords, which limits the layers of a host wider than about 770 modules.
  • The twosided option places the even-numbered layers below the host, so that an odd number of layers has one more above it.
  • The rowheight option sets the height of each row of the Mesa in modules, by default 2.
  • The barrier option places a barrier pattern of the given height in modules between the host and each side of the Mesa. UPC-A and EAN-13 hosts have a barrier of stilts 6 modules high by default, which barrier=0 removes for closed systems.
  • The bearers option adds bearer bars 2 modules high to an Interleaved 2 of 5 host, open at the reference ladders on any side that carries the Mesa.
  • The clocktrack option places a clocking track of the given height in modules below a one-sided Mesa on a UPC-A or EAN-13 host, above a clear area 6 modules high in place of the barrier, for a Mesa that is printed separately from its host.
  • The readerinit option denotes that the symbol is used for programming the barcode reader. Reader programming requires a Mesa of fewer than 512 codewords.
  • The sampos, samtotal and samid options make the symbol one of a Structured Append sequence of 2 to 26 symbols, which a reader reassembles into a single message. sampos and samtotal 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.
    • samid is an optional message ID, which is the same in every symbol of the sequence and must not contain spaces. Uppercase letters encode most compactly.
    • Structured Append requires a host that encodes only zeros, and is not available for reader initialisation symbols.
  • The width and height options scale the whole symbol, as for other two-dimensional symbols. The quiet zone is 1 module above the Mesa, and below it when it is two-sided; at the sides it is that of the host, into which the Mesa extends.
  • The X-dimension of the Mesa is that of its host, so the physical specification options, such as strictspec, loosespec and ast, apply the specification profile of the host.

Examples

A two-sided Mesa on a Code 128 host:

Data:    0123456789|This is Aztec Mesas
Options: host=code128 twosided layers=2
Encoder: aztecmesas

A two-sided Mesa on a Code 39 host:

Data:    CODE 39|It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness
Options: host=code39 twosided
Encoder: aztecmesas

A Mesa on a UPC-A host, with the barrier pattern:

Data:    012345000058|This is Aztec Mesas
Options: host=upca
Encoder: aztecmesas

A two-sided Mesa on an Interleaved 2 of 5 host with a wide-to-narrow ratio of 2, with bearer bars:

Data:    1234567890|This is Aztec Mesas
Options: host=interleaved2of5 hostwidenarrow=2 twosided bearers
Encoder: aztecmesas

A Mesa on a Code 93 host:

Data:    CODE 93|This is Aztec Mesas
Options: host=code93
Encoder: aztecmesas

A Mesa on a Code 93i host:

Data:    Code 93i|This is Aztec Mesas
Options: host=code93i
Encoder: aztecmesas

A Mesa on an EAN-13 host, with a clocking track for printing the Mesa separately:

Data:    9520123456788|This is Aztec Mesas
Options: host=ean13 clocktrack=4
Encoder: aztecmesas

A Mesa that stands alone, on a host of zeros that readers do not transmit:

Data:    0000000000|Call me Ishmael. Some years ago, never mind how long precisely, having little or no money in my purse
Options: host=code128 twosided
Encoder: aztecmesas

The first of two symbols that carry one message by Structured Append:

Data:    0000000000|Call me Ishmael. Some years ago, never mind how long precisely,
Options: host=code128 sampos=1 samtotal=2 samid=MOBY
Encoder: aztecmesas

The second of the two symbols:

Data:    0000000000| having little or no money in my purse, and nothing particular to interest me on shore
Options: host=code128 sampos=2 samtotal=2 samid=MOBY
Encoder: aztecmesas

A Mesa on a Code 128 host, with a barrier pattern:

Data:    0123456789|This is Aztec Mesas
Options: host=code128 barrier=4
Encoder: aztecmesas


Symbologies Reference

Point of Sale

GS1 DataBar

Supply Chain

Two-dimensional Symbols

One-dimensional Symbols

Postal Symbols

Pharmaceutical Symbols

Less-used Symbols

GS1 Composite Symbols

Raw Symbols

Partial Symbols

Clone this wiki locally