Zebra Programming Language (ZPL and ZPL II) is a page description language from Zebra Technologies. It is used primarily for labeling applications. The original ZPL was advanced to ZPL II, but a full compatibility with the older version is not given. Meanwhile, ZPL II is emulated by many label printers of various producers.

Later, the Zebra Basic Interpreter (ZBI) was integrated into printer software, which is seen as an advancement to ZPL II by the producer and is ANSI BASIC oriented. Primarily, it is intended to avoid a refactoring of code when changing the printer, if the old printer software was written by a label printer of a competitor. A possible use of ZBI could be for when the Zebra printer receives a foreign label format, which it would then convert to ZPL II on the fly so it can be printed.

Some printers also support the older Eltron Programming Language (EPL) for printers.

The Ax.pos.zebra package contains a fluent API to interact with ZPL printers.

# 1 Label

The Ax.pos.zebra.Label class provides a fluent api for most common ZPL instructions. In the following example we can see how to draw a label.

Copy
<script>

// ==============================================================
// http://labelary.com/viewer.html
// ==============================================================

var zebra = new Ax.pos.zebra.Label();
zebra.changeFont("0", 60);

// ==============================================================
// 1st
// ==============================================================

zebra.changeFont("0", 30);

// ==============================================================
// 2nd
// ==============================================================

zebra.changeFont("A", 30);
zebra.addText( 50, 340, "100 Main Street");
zebra.addText( 50, 380, "Springfield TN 39021");
zebra.addText( 50, 420, "United States (USA)");

zebra.changeFont("A", 15);

// ==============================================================
// 3rd
// ==============================================================

.setBarCodeWidth(5)
.setWideBarRatio(2)
.setBarCodeHeigth(270);

// ==============================================================
// 4th
// ==============================================================

zebra.addComment("Fourth section (the two boxes on the bottom).");
zebra.addGraphicBox( 50, 900, 700, 250,  3);
zebra.changeFont("0", 40);
zebra.changeFont("0", 190);

console.log(zebra.toZPL())
</script>

# 2 RFID

#### TO DO

This section is incomplete and will be concluded as soon as possible.

# 3 Wireless

#### TO DO

This section is incomplete and will be concluded as soon as possible.