# Zebra Programming Language

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Zebra_Programming_Language
> Markdown URL: https://mediated.wiki/source/Zebra_Programming_Language.md
> Source: https://en.wikipedia.org/wiki/Zebra_Programming_Language
> Source revision: 1350194930
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Specialized computer programming language}}
{{about-distinguish-text|the language typically used with printers|[Z-level programming language](/source/Z-level_programming_language) used in high performance computing}}
{{Infobox programming language
| title            = Zebra Programming Language
| logo             = Zebra Programming Language.png
| logo_size        = 150px
| logo caption     = Zebra logo
| operating system = independent
| influenced by    = ANSI [BASIC](/source/BASIC)
| developer        = [Zebra Technologies](/source/Zebra_Technologies)
}}

'''Zebra Programming Language''' ('''ZPL''') is a [page description language](/source/page_description_language) from [Zebra Technologies](/source/Zebra_Technologies), used primarily for [label](/source/label)ing applications. The original language was superseded by '''ZPL II''', but it is not fully compatible with the older version. ZPL II is supported by some non-Zebra label printers.<ref>{{Cite web |title=ColorWorks CW-C6500A Color Inkjet Label Printer with Auto Cutter (Matte) |author= |website=Epson |date= |access-date=31 July 2021 |url= https://epson.com/For-Work/Printers/Label/ColorWorks-CW-C6500A-Color-Inkjet-Label-Printer-with-Auto-Cutter-%28Matte%29/p/C31CH77A9981 |quote=Compatible with ZPL II }}</ref><ref>{{Cite web |title=cab printers support ZPL II |author= |website=cab.de |date=November 2020 |url= https://www.cab.de/en/news/news/cab-zpl/}}</ref>

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](/source/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.<ref>{{cite web|url=https://www.zebra.com/gb/en/products-services/software/zebralink/zebra-basic-interpreter2.html |title=Zebra BASIC Interpreter 2.0 |publisher=[Zebra Technologies](/source/Zebra_Technologies) |website=Zebra.com |access-date=2020-03-26}}</ref>

==Commands==
The language commands always start with a caret ('<code>^</code>') or tilde sign ('<code>~</code>'). ZPL II has more than 170 commands. Each format has to start with the command <code>^XA</code> and end with <code>^XZ</code>.<ref>{{cite web|url=http://www.ptshome.com/kb/Manuals/ZPL_Vol1.pdf|archive-url=https://web.archive.org/web/20120322181734/http://www.ptshome.com/kb/Manuals/ZPL_Vol1.pdf|url-status=dead|archive-date=2012-03-22|title=ZPL II Programming Guide (vol. I)|year=2005|website=Portable Technology Solutions|page=6}}</ref> For instance, the font size is sent to the printer with the <code>^ADN,n,m</code> command, where <code>n</code> and <code>m</code> are integers denoting the font size and spacing characteristics; <code>^ADN,18,10</code> is the smallest size and  <code>^ADN,180,100</code> the largest.{{Citation needed|date=March 2020}}

The following is a complete example of a ZPL document for a product label:
<pre>
^XA
^CF0,30
^FO300,30^FDHU  Label^FS
^CF0,25
^FO20,100^FDHU ID:         112345678000001107^FS
^BY2.2,3,70
^FO20,130^BCN,,N^FD112345678000001107^FS
^FO20,230^FD60-Volt Cordless Electric Hedge Trimmer^FS
^FO20,260^FD13^FS
^XZ
</pre>

==See also==
* Eltron Programming Language (EPL)

==References==
{{Reflist}}

==External links==
* [https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf Programming Guide (PN: P1012728-008 Rev. A)]
* [http://www.tracerplus.com/kb/Manuals/ZPL_Vol1.pdf ZPL II Programming Guide (vol. I)] {{Webarchive|url=https://web.archive.org/web/20160109145248/http://www.tracerplus.com/kb/Manuals/ZPL_Vol1.pdf |date=2016-01-09 }}
* [http://www.tracerplus.com/kb/Manuals/ZPL_Vol2.pdf ZPL II Programming Guide (vol. II)] {{Webarchive|url=https://web.archive.org/web/20171031013307/http://www.tracerplus.com/kb/Manuals/ZPL_Vol2.pdf |date=2017-10-31 }}
* [http://labelary.com/viewer.html Online ZPL Viewer] from Labelary

Category:Page description languages
Category:Printing

---
Adapted from the Wikipedia article [Zebra Programming Language](https://en.wikipedia.org/wiki/Zebra_Programming_Language) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Zebra_Programming_Language?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
