The syntax and its parameters
The form is ^FOx,y,z. In ^FO120,60 the next field starts 120 dots from the left edge and 60 dots down from the top. The third parameter is optional and almost never appears in a carrier's file.
The values are absolute positions, not offsets: two ^FO commands in a row do not add up. Each one restarts the count from the label's corner, shifted only by whatever ^LH has set as the origin.
- x — horizontal distance in dots, left to right.
- y — vertical distance in dots, top to bottom.
- z — field justification (0 left, 1 right, 2 auto). Optional and rare.
- With no ^FO at all, the field is drawn at 0,0 — the top-left corner.
Why the field vanished off the label
The usual cause is a value beyond ^PW or ^LL: the field was drawn, just outside the label's area. On a 4-inch label at 203 dpi the usable width is 812 dots, so ^FO900 lands off the stock.
The second cause is density. Because ^FO counts dots and not millimetres, a file written for 300 dpi and converted at 203 pushes every field outward — the same ^FO600 that sat at 2 inches now sits at 2.95. If several fields ran off at once, suspect the density rather than the ^FO.
^FO or ^FT: which to use
Both position the field, but they measure from different points. ^FO anchors the top-left corner of the character cell; ^FT anchors the text baseline — the line the letters sit on.
In practice: if you are aligning blocks to each other, ^FO is more predictable. If you are putting different type sizes on the same line and want the letters to line up along the bottom, ^FT is the right one, because with ^FO a larger font drops relative to a smaller one.