Eltron Programming Language
Eltron Programming Language (EPL and EPL2) is a printer control language used to produce printed paper labels for various Eltron (now Zebra) model printers.
Newer printers support also the Zebra Programming Language (ZPL).
EPL2 is a markup, line-at-a-time language, suitable for printing on media of reduced space, and although it supports bitmaps (and therefore, arbitrary images), its use is usually for labels including barcode information. Contrary to what the official documentation title says, it is not a programming language (no flow-control or even conditionals are supported; variables are supported as numbered content).
Each EPL2 line starts with one or more letters (indicating the command), and may be followed by one or more comma-separated arguments. Commands and arguments are case-sensitive.
Arguments that are numeric or belong to a fixed set of options (see i.e. the reverse argument for A) are inlined, and any string or set of variable values must be surrounded by double-quotes (" - see i.e. the text argument for A).
Although the EPL2 language has a quite lengthy and complete number of commands, the most basic are:
- Ah_pos,v_pos,rotation,font,h_mult,v_mult,reverse,"text" - ASCII text
- h_pos: Starting horizontal position (in points)
- v_pos: Starting vertical position (in points)
- rotation: How the text should be printed
- 0: horizontal, normal
- 1: 90 degrees
- 2: 180 degrees
- 3: 270 degrees
- font: Font style to use. Size can be increased by h_mult, v_mult (explained following)
- 1: 8x12 dots (6 pts)
- 2: 10x16 dots (7 pts)
- 3: 12x20 dots (10pts)
- 4: 14x24 dots (12pts)
- 5: 32x48 dots (24 pts)
- A-Z: Reserved for soft fonts
- h_mult: Horizontal multiplier for the font (1-9)
- v_mult: Vertical multiplier for the font (1-9)
- reverse: Whether the text should be rendered black-on-white (N) or white-on-black (R)
- text: The text to be printed. If the text is stored in a variable or a counter, double-quotes are omitted. Variables are prefixed by V (V01-V99), counters by C (C0-C9). Current time or date can be printed by TT and TD respectively.
- Bh_pos,v_pos,rotation,barcode_type,narrow_bar,wide_bar,height,human,"value" - Barcode
- h_pos: Starting horizontal position (in points)
- v_pos: Starting vertical position (in points)
- rotation: How the text should be printed
- 0: horizontal, normal
- 1: 90 degrees
- 2: 180 degrees
- 3: 270 degrees
- barcode_type: Which barcode type to print; 31 barcode types are available. See the official documentation[1] for full information.
- narrow_bar: How wide should the narrow bar of the generated barcode be. Legal values are determined by the barcode_type.
- wide_bar: How wide should the wide bar of the generated barcode be. Legal values are determined by the barcode_type.
- height: Printed barcode desired height (in points)
- human: Whether to print a human-readable form of the value below the barcode
- N Starts a new, empty label. Takes no parameters.
- P Prints the contents of the buffer
- qwidth - Sets the label width
- width: The label width, in points
- Qlength,gap - Sets the label length (height)
- length: The label's printable surface length, in points
- gap: The distance (in points) between two consecutive labels
References
- ↑ "Official Zebra EPL2 documentation (requires registration)" (pdf). Retrieved 2009-04-13.
External links
- Git repository containing manuals for EPL and Java code
- "EPL Programming Guide" (PDF; 24,8 MB) (in German). Retrieved 2014-06-03.