Technical Specifications - Aztec

The Aztec symbol is an ISO international standard (IEC 24778). You are allowed to use it within your applications.

The Aztec code is a 2D barcode that can encode a large amount of information within a square symbol. All 256 characters can be encoded.
You may use multiple symbols to spread your information in order to create a bigger message.

This barcode contains a way to detect and correct errors based on the Reed Solomon algorithm. You can use 0% to 99% of error detection. The advised percentage of error detection is 23%.

Encoding

The data encoded in the barcode comes from different code sets. Switching between code sets will impact the maximal amount of data you can use.

Here is the list of what each code set can encode. The first code sets encode the data in 5 bits, the digit code set encodes in 4 bits. The binary code set encodes in 8 bits.

  • Code Set Upper: Uppercase and space
  • Code Set Lower: Lowercase and space
  • Code Set Mixed: ASCII 1-13, 27-31, 64, 92, 94-96, 124, 126-127
  • Code Set Punctuation: The following set of characters: CR (13), !"#$%&'()*+,-./:;<=>?[]{}
    Also, the combinaison of two characters together to use only 5 bits: CR (13) + LF (10), period + space, comma + space, colon + space
  • Code Set Digit: Numbers, comma, period and space
  • Code Set Binary: ASCII 0-255

Encoding always starts with code set Upper.

Sizes

There are two types of output: compact and full. The full mode can expand to support more data. It also contains a reference grid to help with the reading alignment.
The data is written in counter-clock spiral starting from the center going around the finder pattern.
Table: Size and capacity for an Aztec code
Capacity
Layer Size Numbers Letters Bytes
1 * 15x15 13 12 6
1 19x19 18 15 8
2 * 19x19 40 33 19
2 23x23 49 40 24
3 * 23x23 70 57 33
3 27x27 84 68 40
4 * 27x27 110 89 53
4 31x31 128 104 62
5 37x37 178 144 87
6 41x41 232 187 114
7 45x45 294 236 145
8 49x49 362 291 179
9 53x53 433 348 214
10 57x57 516 414 256
11 61x61 601 482 298
12 67x67 691 554 343
13 71x71 793 636 394
14 75x75 896 718 446
15 79x79 1511 808 502
16 83x83 1008 900 559
17 87x87 1123 998 621
18 91x91 1246 1104 687
19 95x95 1378 1210 753
20 101x101 1653 1324 824
21 105x105 1801 1442 898
22 109x109 1956 1566 976
23 113x113 2116 1694 1056
24 117x117 2281 1826 1138
25 121x121 2452 1963 1224
26 125x125 2632 2107 1314
27 131x131 2818 2256 1407
28 135x135 3007 2407 1501
29 139x139 3205 2565 1600
30 143x143 3409 2728 1702
31 147x147 3616 2894 1806
32 151x151 3832 3067 1914
* Compact sign

Structured Append

BCGaztec supports the Structured Append mode. You can spread across multiple barcodes a single message thanks to this feature.
You can use a maximum of 26 different barcodes.

Rune

Runes are a series of small but distinct machine-readable marks designed to be graphically compatible with Aztec Code. They can encode a number between 0 and 255.

Extended Channel Interpretation

BCGaztec supports the Extended Channel Interpretation. This allows the output have interpretations different from that of the default character set.
To activate it, you have to use setTilde() and use the code ~Exxxxxx in your message. X represents a number from 0 to 9.

You wish to encode this string: ¶Ж. Both characters are represented by the ASCII code 182. The first character is from ECI 000003 (ISO-8859-1 which is the default) and the second one is from ECI 000007 (ISO-8859-5 cyrillic).
You can proceed like this:


$code->setTilde(true);
$code->parse(chr(182) . '~E000007' . chr(182));

Please note that your Barcode Reader must support this feature.

Barcode Bakery Supports

Supports
Encodes Characters, Numbers, Binary
Encodes on many codes (Structured Append)
Encodes FNC1
Extended Channel Interpretation (Arabic, Hebrew, etc.)
Aztec "Runes"
Reader Initialization Symbols *
Specific to PHP package
PHP 7.4
PHP 8+
* This is determined by the barcode reader manufacturers.