^BO
Aztec Bar CodePreview: partialA 2D code with a bullseye at its centre and no quiet zone requirement, which is why transport tickets use it.
Syntax
^BOo,h,e,p,c,m,dParameters
| Parameter | Description and accepted values | If omitted |
|---|---|---|
| o | Rotation of the bar code on the label.N normal, R 90°, I 180°, B 270° | Last ^FW value, else N |
| h | Magnification: the size of one module in dots.1 to 10 — magnification factor | Chosen from the label size |
| e | Error control and symbol size. 0 is the default 23%; 1 to 99 is a percentage; 101 to 104 are compact sizes.0 to 300 — error control and symbol size | 0 |
| p | Prints the symbol as a rune — a small Aztec carrying one number.Y or N — print the symbol as a rune only | N |
| c | How many symbols this message is split across.1 to 26 — number of symbols in a structured append | 1 |
| m | Which symbol this is within that split.1 to 26 — position of this symbol in that append | 1 |
| d | The append id shared by the symbols of a split message.Up to 24 characters — structured append id | None |
How it works
^BO prints Aztec, a matrix symbology whose finder pattern is a square bullseye at the middle rather than corner markers. That layout means it needs no quiet zone at all — the symbol can run right up to the edge of what surrounds it.
That property, plus good error correction at small sizes, is why Aztec is the code on rail and airline boarding passes, where it has to be readable off a crumpled print or a phone screen held at an angle.
The magnification parameter sets the size of one module in dots, and the error-control parameter trades capacity for robustness. Leaving error control at 0 gives the encoder's default, which is a sensible 23%.
Example
^XA
^FO60,60^BON,6,0^FDZPL Toolkit^FS
^XZRendering…
How the preview on this site handles it
Drawn with a real Aztec encoder, so it scans, and rotation is applied. The error-control level from `e`, the rune mode from `p` and the structured append from `c`/`m`/`d` are left at the encoder's defaults — setting them does not change the preview, though it does change what the printer produces.
Common mistakes
- Sizing it by ^BY. Aztec takes its module size from `h`, not from the ^BY module width.
- Pushing error control too low to save space. The reason Aztec reads off a damaged ticket is the correction level; 0 is a better default than a hand-picked 5%.
- Assuming every scanner reads it. Aztec is standard in transport but not always enabled on general-purpose warehouse scanners.