Aztec Barcode FAQ and Tutorial

Barcode Information | Tutorials | Examples

Aztec Barcode Overview

Aztec barcodes are very efficient two-dimensional (2D) symbologies that use square modules with a unique finder pattern in the middle of the symbol, which helps the barcode scanner to determine cell locations to decode the symbol. Characters, numbers, text, and bytes of data may be encoded in an Aztec barcode. The IDAutomation implementation of the Aztec barcode symbol is based on the ISO standard version released into the public domain by its inventor, Honeywell.

Aztec Barcode Size and Accuracy

Aztec barcodes are some of the smallest and most dependable symbologies in use today. Compared to other types, Aztec barcodes are approximately 30 times smaller than a Code 39 barcode representing the same data. Aztec barcodes are also good to use when sending barcoded documents via fax because the barcode can withstand many poor resolution and scanning issues. A quiet zone is not required with Aztec barcodes because the unique finder pattern is in the center of the symbol. However, some barcode imagers may have difficulty decoding unless a 1-module quiet zone is present, which should be the same color as the background.

Aztec Barcode Printing and Generation

The IDAutomation Aztec Barcode Font and Encoder is a collection of encoders and components that generate Aztec barcodes with fonts or graphics. Several different Aztec barcode encoders are available in the package to support multiple operating systems including Windows, Mac, and Linux.

Verifying Aztec Barcodes

Printed barcode symbols may be easily verified with the Print Quality Assessment feature available in the IDAutomation 2D Barcode Scanner. This quality assurance test will grade the symbol and report any possible problems. The report below was generated when scanning the symbol at the top of the page with PQA enabled:

>> PQA <<
AZTEC CODE: 3 layers (Compact) => 23x23 modules
Data Field: 32 data & 19 checks in GF(256), 0 Erasures & 0 Errors
X roughly = 0.020"
[A] < Core Symbol: 0 errors
[A] < Data Safety Margin = 113%
[A] < Horizontal Print Growth = +11% of X
[A] < Vertical Print Growth = +14% of X

Reading Aztec Barcodes

  • The most common method of reading Aztec barcodes is with a camera-based barcode image reader. Most 2D barcode imagers available at IDAutomation perform keyboard emulation and receive power from the USB port so that no external power supply is needed. When a barcode symbol is read using keyboard emulation, the data appears at the cursor as if it had been typed in from the keyboard.
  • Most 2D barcode imagers have the ability to read Aztec barcodes by default. Many hand-held imagers also read very small symbols such as the IDAutomation 2D Barcode Scanner, which reliably reads Aztec barcodes printed as small as 3 points, which is an X-dimension of 10 mils.
  • In many cases, there may be a need for the scan to trigger a form or action within an application. IDAutomation has documented simple methods of accomplishing this task in the USB Barcode Scanner Application Integration Guide.

ASCII Function Encoding

Aztec allows ASCII codes to be encoded for various functions such as tabs and returns. In all IDAutomation products, the tilde (~) may be used to encode ASCII functions. For example; ~d009 is used to encode a tab and ~d013 encodes a return. In many development environments, Chr or Char may also be used to encode the ASCII value directly.

For example, the programming examples below encode “ECC” <tab> 200:

DataToEncode= “ECC” + (char)9 + “200”;
Visual Basic: DataToEncode= “ECC” & Chr(9) & “200”

Double Byte, Unicode & Extended ASCII Encoding

All 256 ASCII characters can easily be encoded with the Byte encoding mode. For information about encoding and decoding UTF-8 and Unicode characters, refer to the UTF-8 and Unicode Encoding FAQ.

Encoding Modes & Error Correction

  • Products such as the IDAutomation Aztec Barcode Fonts and Barcode Components all support automatic encoding mode. The following encoding modes are available in most IDAutomation products:
    • Auto is used to automatically switch between encoding modes, as needed, to provide the most efficient symbol.
    • Byte is used to encode strictly byte data.
    • Text is used for only letters, numbers, and punctuation.
    • Numeric is used for only numbers.
  • The error correction level encoded in the symbol is specified as a value from 5 to 95. In IDAutomation products the default value of “0” encodes an error correction of 23. More error correction creates a larger symbol that can withstand more damage. It is not recommended to use error correction over 23 with large amounts of data, because this may overload the symbol capacity. When the symbols are generated clearly without much possibility of damage, this value may be lowered to 5 or 10 to generate a smaller symbol.

 Encoding GS1, Control Characters, and use of the Tilde

IDAutomation Aztec Barcode Fonts, Components, and Applications use the tilde character “~” to recognize special characters when “Apply Tilde” or “Process Tilde” is enabled. The following tilde options are available:

  • ~dNNN: Represents the ASCII character encoded by the 3 digits NNN. For example, ~d009 represents a tab, ~d013 represents a return and ~d065 represents the character ‘A’.
  • ~1: Represents the character FNC1. When FNC1 appears first within the data encoded, it indicates that the data conforms to the GS1 Application Identifier standard format and a GS1 Aztec symbol is generated. An appropriately configured scanner would then decode the symbol as if it was a large GS1-128 barcode. For example, the symbol below was created by encoding:
    which encodes multiple GS1 element strings.
    GS1 Aztec symbol encoding multiple element strings
    (01) 04912345123459
    (15) 564432
    (3970) 33130128
    (99) 3421
    (8100) ABCDEFGHI123456789012When scanned with an appropriately configured scanner, the first three digits identify a GS1 symbol, the symbol above should read:

Is a License Required to Use Aztec Symbols?

The Aztec symbology was placed in the public domain by its inventor Honeywell, therefore no license or royalty fees are required for use.