Published:
Print quality is fine, nothing is clipped, but the whole layout sits to one side of the label — or it moved sideways one day without anyone editing the form. In EPL that is almost always a printer setting, not the form: two commands decide where the image buffer starts, and both stay in effect after the job that sent them. Page numbers below refer to Zebra's EPL Programming Guide 14245L-003 Rev. A.
q sets the width of the printable area in dots. The manual
is explicit that it does more than clip: "The q command will cause the
image buffer to reformat and position to match the selected label width"
(p. 137). On a printer whose print head is centre-aligned, a buffer that is
narrower than the head is centred on the head — so a wrong
q moves every element horizontally, by half the difference. A
1.5 in label at 203 dpi is 304 dots; a form printed with the width still
set for 2 in media (406) lands 51 dots to one side. The Q page adds the
cost of getting it wrong: "If the label size is not set properly, the
printer may print off the edge of the label" (p. 140).
Rx,y moves the origin: "All horizontal and vertical
measurements in other commands use the setting for R as the origin for
measurements" (p. 143). The manual offers it as the alternative to
q for positioning labels narrower than the head, and notes
two side effects worth knowing when you are hunting a shift: "The R
command overrides the q commands print width setting", and "Use the Q and
R commands together for the easiest method of positioning form elements in
the print image in left-aligned table top printers" (p. 143). A leftover
R from another job, or an R that assumed the
other printer model, is a constant sideways offset on every label.
A form stored with FS keeps "all commands following FS
… until the FE command is received" (p. 104) and is recalled by name with
FR (p. 103). Nothing in that store sequence is required to
carry q or R; many forms written for a keyboard
display unit do not. They print with whatever the printer's current
settings are. So the sequence that produces "it suddenly shifted" is
ordinary: a driver test page, a different form, or a setup utility sends a
new width or reference point, the printer keeps it, and Form 1 — untouched
in memory — prints shifted from then on. Swapping the KDU does not help,
because the KDU only recalls the form; the setting lives in the printer.
FI prints the list of stored forms (p. 101), not their
contents, so the form itself is not inspectable from the printer.
N
q304
Q492,24
R0,0
P1
Send the width and the reference point explicitly, once, from a PC
(they are settings, they stay), then recall the form from the KDU as
before. If the shift moves with a particular form, store that form again
with its own q and R inside the
FS…FE block — the manual's list of commands that
must not be stored (p. 104) does not include either, so a form may carry
its own geometry. Delete the old copy first with FK; on
flash-memory printers a single form needs the delete command twice
(p. 102).
The EPL viewer applies R:
paste the form's source and the elements move by exactly the offset, so
you can see whether the geometry in the file explains the shift. It does
not model the second half of the manual's sentence — that R
switches the buffer to the full print-head width — because the preview
does not know your print head. It has no printer memory either:
FS, FR, V and ? are
recognised and reported as stored-form commands, and the form's content is
drawn only if you paste the FS…FE block itself.
Command pages: R,
q,
FS, FR.
A shift that varies from label to label, or that appears after a roll change, is mechanical: media not seated against the guide, a roll narrower than the guides are set to, or the gap sensor finding the top of the label late. Those are alignment and calibration. A shift that is the same on every label, with the form unchanged, is one of the two settings above — and the ZPL version of the same story is ZPL label content shifted.
Because the form prints with the printer's current settings, and q (label width) and R (reference point) are settings that stay in effect after the job that sent them. A driver test page, another form or a setup utility can change them; the form in memory is untouched but prints from a different origin. Send q and R explicitly once, or store the form again with its own q and R inside the FS…FE block.
Yes. The EPL Programming Guide states that q makes the image buffer reformat and position to match the selected width (p. 137). On a centre-aligned print head a narrower buffer is centred, so a width set for wider media shifts every element by half the difference.
It applies R: paste the form's source and every element moves by the offset. It does not model R switching the buffer to the full print-head width, and it has no printer memory — FS, FR, V and ? are reported as stored-form commands and the content is drawn only if you paste the FS…FE block itself.
Render TSPL in the browser, read the diagnostics it produces, and know which commands a preview deliberately does not draw.
Previewing and debugging EPL without a printerLegacy EPL/EPL2 jobs, rendered in the browser: what each line does, which findings matter, and what a preview will not draw.
TSPL BITMAP prints a black boxA TSPL BITMAP that prints as a solid black square almost always has its bits inverted: in TSPL a 0 bit prints black. Check the data, then fix it.
TSPL vs EPL: migrating off a legacy fleetMoving from EPL printers to TSC hardware: what the two languages share, what has no counterpart, and how to test the migration.