Sign In
Products
ZPL ViewerBarcode GeneratorImage → ZPLZPL cheat sheetLabel DesignerTemplate Gallery
Developers
API QuickstartAPI ReferenceMCP ServerBulk GenerationWebhooksSDKs & ExamplesLimitsDirectPrint agent NewGitHub ActionVS Code extensionOn-Premise
Solutions
Logistics & ShippingE-CommerceERP & WMSManufacturingRetailHealthcare & LaboratoryAll solutions
Tools
ZPL Diagnostics HubZPL DebuggerSize & DPI AnalyzerDPI ConverterBarcode fit calculatorShipping Label AnalyzerFont InspectorOrientation DebuggerCalibration AssistantPrinter Compatibility CheckerBarcode Readability CheckerPrinter Language DetectorThermal Printer Test PackZPL ToolsEPL ToolsTSPL ToolsCPCL ToolsPrinter Language ConverterAll ToolsGuidesPricing
Language
EnglishTürkçeDeutsch
Home›Guides›Previewing and debugging EPL without a printer

Previewing and debugging EPL without a printer

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.

A minimal EPL job, line by line

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.

The findings you will actually meet

Commands the preview will not draw

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.

Migrating away from EPL

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.

Related guides

EPL label content shifted

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 fleet

Moving 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 printer

Render 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 units

Which 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.

Try your own ZPL code →