^BA
Code 93 Bar CodePreview: partialA denser, continuous relative of Code 39 that carries the full ASCII set — when the scanner is configured to read it.
Syntax
^BAo,h,f,g,eParameters
| 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 | Bar height in dots. Overrides the height set by ^BY for this field only.1 to 32000 dots | Height set by ^BY |
| f | Prints the data underneath the bars as text.Y or N — print the human-readable line | Y |
| g | Moves that text above the bars instead.Y or N — put that line above the bars | N |
| e | Prints the two check characters as part of the human-readable line. They are always encoded either way.Y or N — print the check digit | N |
How it works
^B3 prints Code 39; ^BA prints Code 93, which was designed to replace it. Every character is a fixed 9 modules wide, with no wide and narrow bars, so a Code 93 is meaningfully narrower than the same data in Code 39.
Code 93 reaches the full 128-character ASCII set by combining two characters for anything outside its basic set, which means lowercase and punctuation are available — at double the width for each such character.
The catch is on the reading side. Many scanners ship with Code 93 disabled, and full-ASCII mode is a separate setting again. Before choosing it for a label that leaves your building, confirm the receiving scanners accept it; if you cannot, Code 128 is the safer dense symbology.
Example
^XA
^BY2
^FO60,50^BAN,80,Y,N^FDZPL TOOLKIT^FS
^XZRendering…
How the preview on this site handles it
Drawn with a real Code 93 encoder, rotation included. The preview encodes the basic character set only — a symbol the printer would build in full-ASCII mode is drawn as a hatched red box here rather than as bars that do not match.
Common mistakes
- Choosing Code 93 without checking the scanners. It is the most commonly disabled of the mainstream symbologies.
- Expecting full ASCII to be free. Each character outside the basic set is encoded as two, so a lowercase-heavy value can end up wider than Code 39.
- Reading the check characters as data. They are part of the symbol, not part of the value your system sent.