The component is used to create the Aztec Code 2D Barcodes symbols. It's defined in the pfmxAztecCode unit.
Aztec Code is a two-dimensional matrix symbology whose symbols are nominally square, made up of square modules on a square grid, with a square bullseye pattern at their center. Aztec Code symbols can encode from small to large amounts of data with user-selected percentages of error correction. All 256 8-bit values can be encoded.
Aztec Code is invented by Andrew Longacre, Jr. and Robert Hussey in 1995. The code was published by AIM, Inc. in 1997. It is used for small item marking applications using a wide variety of printing and marking technologies.
There are two basic formats of Aztec Code symbols:
Compact: There is a 2-ring bullseye pattern in the symbol center. It's useful for encoding shorter messages efficiently.
Full range: There is a 3-ring bullseye pattern in the symbol center. It supports much larger symbols for longer data messages.
You can use the SymbolMode property to specify which formats and Aztec Code symbol sizes (see also the "Symbol sizes" section below) will be automatically selected between the minimum and maximum symbol sizes specified by corresponding MinSize and MaxSize properties, based on the length of barcode text. It can be one of these values (defined in the pfmxAztecCode unit):
smNormal: Only the symbol sizes that they are useful for data encoding operation, including all compact symbol sizes (azSize_15Compact, azSize_19Compact, azSize_23Compact, and azSize_27Compact), and full range symbol sizes from azSize_31 to azSize_151.
smCompact: Only the symbol sizes in compact format, including the azSize_15Compact, azSize_19Compact, azSize_23Compact, and azSize_27Compact.
smFullRange: Only the symbol sizes in full range format, including the azSize_19, azSize_23, azSize_27, and azSize_31 to azSize_151.
smProgram: Only the symbol sizes that they are useful for reader initialization, including azSize_15Compact, azSize_19, azSize_23, azSize_27, and full range symbol sizes from azSize_31 to azSize_109. Note, in order to create a reader initialization symbol, a "\p" escape sequence should be placed into the barcode text, and the AllowEscape property should be set to true. See also the "Escape sequences" section below.
smAll: All symbol sizes, including compact and full range formats.
The smallest Aztec Code symbol is 15 * 15 modules square, and the largest is 151 * 151. There are 36 square symbol sizes available in Aztec Code symbology. These are specified in following table (defined in the pfmxAztecCode unit):
Sizes | Formats | Layers | Dimension (modules) | Maximum data capacities | ||
---|---|---|---|---|---|---|
Digits | Text | Bytes | ||||
azSize_15Compact | Compact | 1 | 15 * 15 | 13 | 12 | 6 |
azSize_19 | Full range | 1 | 19 * 19 | 18 | 15 | 8 |
azSize_19Compact | Compact | 2 | 19 * 19 | 40 | 33 | 19 |
azSize_23 | Full range | 2 | 23 * 23 | 49 | 40 | 24 |
azSize_23Compact | Compact | 3 | 23 * 23 | 70 | 57 | 33 |
azSize_27 | Full range | 3 | 27 * 27 | 84 | 68 | 40 |
azSize_27Compact | Compact | 4 | 27 * 27 | 110 | 89 | 53 |
azSize_31 | Full range | 4 | 31 * 31 | 128 | 104 | 62 |
azSize_37 | 5 | 37 * 37 | 178 | 144 | 87 | |
azSize_41 | 6 | 41 * 41 | 232 | 187 | 114 | |
azSize_45 | 7 | 45 * 45 | 294 | 236 | 145 | |
azSize_49 | 8 | 49 * 49 | 362 | 291 | 179 | |
azSize_53 | 9 | 53 * 53 | 433 | 348 | 214 | |
azSize_57 | 10 | 57 * 57 | 516 | 414 | 256 | |
azSize_61 | 11 | 61 * 61 | 601 | 482 | 298 | |
azSize_67 | 12 | 67 * 67 | 691 | 554 | 343 | |
azSize_71 | 13 | 71 * 71 | 793 | 636 | 394 | |
azSize_75 | 14 | 75 * 75 | 896 | 718 | 446 | |
azSize_79 | 15 | 79 * 79 | 1008 | 808 | 502 | |
azSize_83 | 16 | 83 * 83 | 1123 | 900 | 559 | |
azSize_87 | 17 | 87 * 87 | 1246 | 998 | 621 | |
azSize_91 | 18 | 91 * 91 | 1378 | 1104 | 687 | |
azSize_95 | 19 | 95 * 95 | 1511 | 1210 | 753 | |
azSize_101 | 20 | 101 * 101 | 1653 | 1324 | 824 | |
azSize_105 | 21 | 105 * 105 | 1801 | 1442 | 898 | |
azSize_109 | 22 | 109 * 109 | 1956 | 1566 | 976 | |
azSize_113 | 23 | 113 * 113 | 2116 | 1694 | 1056 | |
azSize_117 | 24 | 117 * 117 | 2281 | 1826 | 1138 | |
azSize_121 | 25 | 121 * 121 | 2452 | 1963 | 1224 | |
azSize_125 | 26 | 125 * 125 | 2632 | 2107 | 1314 | |
azSize_131 | 27 | 131 * 131 | 2818 | 2256 | 1407 | |
azSize_135 | 28 | 135 * 135 | 3007 | 2407 | 1501 | |
azSize_139 | 29 | 139 * 139 | 3205 | 2565 | 1600 | |
azSize_143 | 30 | 143 * 143 | 3409 | 2728 | 1702 | |
azSize_147 | 31 | 147 * 147 | 3616 | 2894 | 1806 | |
azSize_151 | 32 | 151 * 151 | 3832 | 3067 | 1914 |
Note:
Full range symbols with 1, 2, or 3 layers (azSize_19, azSize_23, and azSize_27) are useful only for reader initialization.
The data capacities shown are based on the recommended error correction levels (23 % of symbol capacity plus 3 codewords).
You can use the MinSize and the MaxSize properties to specify the minimum and maximum sizes for an Aztec Code symbol. The smallest symbol size that accommodates the barcode text will be automatically selected between the minimum and maximum symbol sizes.
If the barcode text does not fill the maximum data capacity of the Aztec Code symbol, remaining data capacity of the symbol will be used as excess error correction. If the barcode text is so long that it cannot be encoded using the maximum symbol size specified by the MaxSize property, an OnInvalidLength or OnInvalidDataLength event will occur. The CurrentSize property can be used to get the factual symbol size.
No quiet zone is required outside the bounds of the Aztec Code symbol. So the minimum values of LeadingQuietZone, TrailingQuietZone, TopQuietZone, and BottomQuietZone properties are equal to 0.
The design of Aztec Code technically allows a symbol to include as little as none or as much as 99% in error correction codewords, though both limits are unsound. The recommended level of error correction for normal use is 23% of symbol capacity plus 3 codewords more. They may also choose to override the default error correction level, specifying either an alternate minimum error correction percentage or a fixed symbol format and ECC size.
Users, judging their applications to be especially benign or critical, may choose to specify an alternate minimum error correction percentage (specified by the ECCLevel property), ranging from 0% to 99% plus always, for data security, 3 or more additional error correction codewords (specified by the ECCCount property). This is called a "minimum" percentage because, depending on message length, the symbology will typically have to add extra error correction codewords above this minimum to fill out the symbol.
Some applications will be best served by specifying a fixed size (number of codewords) to be used for all Aztec Code symbols regardless of their data content. In this case, the ECCLevel property should be set to 0, and the ECCCount property should be set to a size which includes adequate error correction for the longest message anticipated; then, typically shorter messages will be encoded with excess error correction, creating more robust symbols for this application.
All 8-bit values can be encoded. The default interpretation shall be:
This interpretation corresponds to ECI 000003.
Two non-data characters can be encoded, FNC1 for compatibility with some existing applications and ECI indicator blocks for the standardized encoding of message interpretation information.
The AllowEscape property should be set to true in order to place the FNC1 characters or the ECI indicator blocks.
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 Aztec Code:
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 Aztec Code 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 Aztec Code symbols. For example:
ABC\e[123]DEFabc\e[000003]def
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.
In order to fit a non-square area or to handle larger messages than are practical in a single symbol, a data message can be distributed across several Aztec Code symbols. Up to 26 Aztec Code 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>, <Message_ID>]" is used to place the structured append block to the barcode text:
The AllowEscape property should be set to true in order to place the structured append block. The structured append block may only be placed only once in the barcode text. Also, it shall be placed at beginning of the barcode text. The OnInvalidChar or OnInvalidDataChar event will occur if the structured append block be placed more than once, or it isn't placed at beginning of the barcode text. The following is an example of structured append:
\s[2, 5, DESCRIPTION]ABCDEFGabcdefg1234567890