^BD
MaxiCode Bar CodePreview: not drawnThe UPS symbol: a bullseye surrounded by hexagons, always one fixed size, carrying the routing data for a parcel.
Syntax
^BDo,m,n,tParameters
| Parameter | Description and accepted values | If omitted |
|---|---|---|
| o | Reserved. MaxiCode does not rotate — the symbol is drawn upright whatever is asked.Reserved — MaxiCode has no rotation | None |
| m | Symbol mode. 2 and 3 carry a structured carrier message; 4, 5 and 6 carry free data.2 to 6 — symbol mode | 2 |
| n | Which symbol this is, when a message is split across several.1 to 8 — position of this symbol in a structured append | 1 |
| t | How many symbols that message is split across.1 to 8 — total symbols in the structured append | 1 |
How it works
^BD prints MaxiCode, the symbology UPS created to sort parcels at speed. Its modules are hexagons packed around a central bullseye, which is what lets a scanner find and orient the symbol on a moving belt regardless of which way the parcel lies.
MaxiCode is always the same physical size — about one inch square — no matter how much data it carries or what ^BY says. Capacity is fixed instead: 93 characters in the modes that carry a structured carrier message, 138 in the others.
The data for the modes UPS uses is not free text. It is a structured message with a postal code, country code, service class and then the parcel detail, separated by the record separators a ^FD carries as hex escapes. Getting that structure wrong is the usual reason a carrier rejects a label that otherwise looks right.
Example
^XA
^FO60,60^BD2,1,1^FD001840152382802[)>_1E01_1D961Z00004951_1DUPSN^FS
^XZRendering…
How the preview on this site handles it
Not drawn. MaxiCode is a hexagonal grid around a bullseye, and this renderer draws square modules — a square-module approximation would look like a symbol and scan as nothing, which is worse than an honest gap. The field data is drawn as plain text instead, so you can see it is there. Everything around it on the label previews normally.
Common mistakes
- Expecting ^BY to size it. MaxiCode is a fixed physical size; module width and bar height have no effect.
- Sending a plain string in mode 2 or 3. Those modes expect a structured carrier message, and the carrier's system will reject anything else.
- Rotating the field. There is no rotation parameter that does anything — plan the layout around an upright symbol.