Printer Protocols

A virtual printer is created for one protocol, because the byte stream is only meaningful once you know which language it is written in. Pick it when you create the printer; you cannot feed EPL to an ESC/POS printer and expect a label.

ESC/POS

The receipt language. Originally Epson's, now the de facto standard for thermal receipt printers from dozens of vendors. It is a stream of escape sequences interleaved with the text to print: set bold, print a line, feed, print a barcode, cut.

This is what a POS application emits when it prints a customer receipt, and it is the protocol most users of this service are testing. Supported here including text styling, code pages, barcodes and QR codes, raster images, NV logos, cash-drawer pulses, paper cuts, and real-time status replies.

EPL

Eltron Programming Language, used by label printers. Unlike ESC/POS it is line-oriented and page-at-a-time: you describe the fields of a label, then print N copies. Supported here for label layout, text, and barcodes.

TSPL

TSC's label language, similar in spirit to EPL. In development — not yet available when creating a printer.

ZPL

Zebra's label language, the other half of the label world alongside EPL. In development — not yet available when creating a printer.

Which one am I sending?

If you do not know what your application emits, print it here anyway and look at the parsed result: a document full of unrecognized commands usually means the printer's protocol does not match the stream.

Next pageSupported ESC/POS Commands →