^LS shifts the printed image horizontally. Positive values shift the label to the right; negative values shift it to the left. This is similar to changing ^LH but works as a direct horizontal offset of the entire printed area, independent of the label home position.
The primary use case is fine-tuning alignment on pre-printed stock or compensating for media that consistently feeds slightly off-center. Rather than adjusting every ^FO x-coordinate in a complex label design, you apply a single ^LS adjustment.
The allowable range is −9999 to 9999 dots, but the practical range is limited by your printer's maximum print width. Shifting beyond the print head boundary clips the content.
^LS is a persistent setting. It survives format changes and power cycles on most Zebra firmware versions. If you use ^LS in one job and send a new job without explicitly setting ^LS to 0, the shift carries over.
For vertical offset, there is no ^LS equivalent — use ^LH to move the home position vertically.
Syntax
^LSd
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| d | integer (−9999 to 9999) | 0 | Horizontal shift in dots. Positive = shift right, negative = shift left. |
Examples
Shift entire label 20 dots to the right
Try in Viewer^XA ^LS20 ^FO50,50^A0N,36,36^FDShifted Right^FS ^FO50,100^A0N,28,28^FDAll fields moved 20 dots^FS ^XZ
Reset label shift to zero
Try in Viewer^XA ^LS0 ^FO50,50^A0N,36,36^FDNo Shift Applied^FS ^XZ
Common Mistakes
- !Not resetting ^LS to 0 before sending a new job — the shift from a previous job carries over and misaligns new labels.
- !Using ^LS as a substitute for correct media calibration — if labels are consistently misaligned, calibrate the printer.
- !Confusing ^LS (shift whole label) with ^LH (set origin) — they overlap in effect but work differently.