Published:
EPL is the older Eltron language, and it is still in service on a large installed base — which is exactly why it hurts: the people who wrote the original templates have often moved on, and the printers outlive the documentation. Reading an EPL job on screen is the cheapest way to find out what it actually does.
N
q812
Q1218,24
A50,50,0,4,1,1,N,"HELLO"
B50,120,0,1,3,7,80,B,"123456"
P1
N clears the image buffer — leave it out and the previous
job's content can print again. q sets the label width in
dots and Q the height plus the gap between labels.
A places text and B a barcode, both with
positional arguments. P prints; without it the printer
receives a description and does nothing with it.
Two things surprise people coming from ZPL. There is no field
terminator: an EPL line is complete in itself. And everything is dots —
there is no unit-bearing size command, so the label's physical size lives
entirely in q/Q and the media you loaded.
A and
B take a fixed number of comma-separated arguments. Miss one
and every following value lands in the wrong slot, so the command is
skipped instead of drawn wrongly.D (density), S (speed), I
(character set), JF, ZB and ZT are
recognised and reported as printer-behaviour commands. They change how the
mechanism burns and feeds, not what the image contains, so drawing them
would be a lie. If your on-screen label is right and the printed one is
too light, too dark or feeding oddly, those are the lines to look at.
Stored-form commands (FS, FR, V,
?) are a different case: the preview has no printer memory,
so the form's content is drawn only when you paste the
FS…FE block itself — and a form that prints
shifted is usually a q/R setting, see
EPL label content shifted.
Many EPL fleets are being replaced by ZPL-capable hardware, and the
temptation is to translate line by line. The mapping is not mechanical:
EPL's positional arguments and ZPL's caret-prefixed fields express the
same ideas with different defaults, and the field terminator
(^FS) has no EPL counterpart to translate from. Rebuild the
layout from the measurements, then compare renders side by side rather
than trusting a conversion.
Start here: the EPL viewer renders the job, the EPL validator lists findings, and the command reference shows every command the engine understands with its coverage level. If you are not certain a file is EPL at all, the language detector settles it from the code.
An EPL label that prints shifted sideways is usually a printer setting, not the form: q width, the R reference point, and stored forms that inherit both.
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.
Previewing and debugging TSPL without a printerRender TSPL in the browser, read the diagnostics it produces, and know which commands a preview deliberately does not draw.
ZPL vs CPCL: desk printers and mobile unitsWhich to use: ZPL unless the printer is a CPCL mobile unit. Side-by-side command table, how to check and switch the printer language, and how to port a label.