Zebra Technologies Corporation · NASDAQ:ZBRA
Zebra Technologies — Technical Presentation (2023)
22 slides from Zebra Technologies's technical presentation, 2023
Slide 1: Printer Command Languages
Printer Command Languages How to Speak "Printer" Leo Lowy Director, Sensor Product Management 1
Slide 2: Print DNA Printers
Print DNA Printers ZEBRA TECHNOLOGIES
Slide 3: Printer OS
Printer OS RS232, Parallel, USB Client/Host/OTG, ZBI Ethernet, Wi-Fi, Java (future) Bluetooth, WAN (future) Pre-Parsing, COMMS App and Data TCP/UDP, HTTPS, Manipulation Licensing POP3, SMTP, Web System Sockets Label Device Formatting Configuration ZPL, EPL, CPCL, And Printing and Status ZPL, SDG, OI
Slide 4: Printer Command Languages: What To Use
Printer Command Languages: What To Use Zebra Programing Language (ZPL) Formatting & Encoding • 321 Commands Set-Get-Do (SGD) • 1100 Commands Eltron Programming Language • 86 Commands Comtec Programming Language • 148 commands Java Scrip Notation (JSON) with SGD Config & Status • Multiple Purposes fo
Slide 5: Zebra Programming Language (ZPL)
Zebra Programming Language (ZPL) • In the Printer OS since 1988 • Use for multiple tasks: • Used to print fonts, graphics, barcodes, encode RFID tags • Printer configuration and printer status checking • Not case sensitive. • Commands are 2 characters and are preceded by a command prefix (^/~ by def
Slide 6: Using ZPL – It's All About the Dots
Using ZPL – It’s All About the Dots • All X & Y locations are measured in printer dots. • Text begins with ^FD • ^FD used for text on its own and text within barcodes, serialization fields, etc… • ^FS is required at the end of text. • It’s okay to express the whole label as a graphic, but it will be
Slide 7: ZPL Design Tools
ZPL Design Tools • Text Editors – Ultra Edit – Very Good – DOS Editor – Very limited – BablePad– Great for encodings – Notepad (Risky) – ZPL renderers – good, but incomplete. Test with a printer. • Label Design –ZebraDesigner Essential and ZebraDesigner for Developers – Point it to a local port (C:\
Slide 8: Unicode Character Printing
Unicode Character Printing • Part of the Printer OS Since 2005 Supported Languages & Scripts • Multiple languages, encodings and scripts supported Albanian French Polish Arabic German Portuguese • Printer handles character shaping Azerbaijani Greek Romanian Bulgarian Hebrew Russian • Useful Tools: C
Slide 9: ~HS – the "Ping" of ZPL
~HS – the “Ping” of ZPL b = paper out flag (1 = paper out) c = pause flag (1 = pause active) – A Printer Status command, great for feedback String 1: eee = number of formats in receive buffer – Considered by Zebra as a <STX>aaa,b,c,dddd,eee,f,g,h,iii,j,k,l<ETX><CR><LF> backwards compatibility “MUST”
Slide 10: RFID Tag Encoding
RFID Tag Encoding • Part of the Printer OS since 2000 • Encoding capabilities vary by printer model – use the printer manual! • Encoding is done using ZPL commands. • Best Practice is to place the RFID commands at the end of the format. • Let's encode a Gen 2 RFID Tag in Hexadecimal: ZPL Commands Co
Slide 11: RFID Tag Encoding Continued
RFID Tag Encoding Continued • Let's Encode the RFID tag, read the tag, and then print the tag data on label: ZPL Commands Command Functions ^XA Start of format When the label prints, the data read from the tag at field variable 7 (^FN7) will be ^FO60,60 ^A0N,40 ^FN7 ^FS printed at location 60,60. W,
Slide 12: RFID Tag Encoding Continued
RFID Tag Encoding Continued • Let's Encode the RFID tag, read the tag, print the data & then return the read result to the host ZPL Commands Command Functions ^XA Start of format When the label prints, the data read from the tag at field variable 3 (^FN3) will be ^FO50,50 ^A0N,65 ^FN3 ^FS printed at
Slide 13: ZPL Best Practices
ZPL Best Practices • Separate ^ and ~ commands. Formatting & encoding commands have priority. Do this instead: ~HS ^XA ^FO30,30^A0,50,50^FDHELLOWORLD!^FS ^FO30,100^BY3^BCN,100^FD123456^FS ^XZ ~HS • Separate printer configuration commands from formatting commands. Do this instead: ^XA^PR6^XZ ^XA ^FO3
Slide 14: Using Set-Get-Do
Using Set-Get-Do • Part of the printer OS since 1995 • A printer configuration and status checking Command—always preceded with ! U1 and language. Not used for printing 1 must be specified in lower case. Put a space between ! and U1 and a space between ! U1 and the command. • Three main components •
Slide 15: The allcv
The allcv • allcv is a legacy command. • Returns printer settings in an unstructured format. • Responses are in a “Branch” order – meaning groups of settings are grouped together. • A quick, but not machine friendly way to get printer status information. • Sending ! U1 getvar "allcv" will cause the
Slide 16: Using JSON
Using JSON • Part of the Printer OS since 2013 • JSON (JavaScript Object Notation) is an open standard format that uses human- and machine-readable text for device management. {"device.friendly_name":null, • JSON is a popular open standard for exchanging data objects and is "device.company_name":nul
Slide 17: Using JSON for Configuration
Using JSON for Configuration • To do a setvar in SGD you use the format, as in: – ! U1 setvar "sgd.name" – ! U1 setvar "ip.port" – ! U1 setvar "device.location" • To set a configuration value using JSON: – {}{"sgd.name":"value"} sets the variable value to "value" – {}{"ip.port":"1234"} sets the vari
Slide 18: Using JSON for Status
Using JSON for Status • To do a getvar in SGD you use the format, as in: – ! U1 getvar "sgd.name" – ! U1 getvar "ip.port" – ! U1 getvar "device.location" • To get a variable value using JSON: – {}{"sgd.name":null} returns {"sgd.name":"value"} • {}{"ip.port":null} returns {"ip.port":"9100"} • {}{"dev
Slide 19: The allconfig
The allconfig • You can request an allconfig report using JSON, and it will return all printer settings with their current settings, defaults, in JSON format. • Send this: {}{"allconfig":null} {"allconfig": {"ip.port":{"value":"6101","type":"integer","range":"0- 65535","clone":true,"archive":true,"a
Slide 20: allcv vs allconfig
allcv .vs allconfig • Which one should you use? Depends on your situation: • If you’re creating a new solution, start with Allconfig, it makes dealing with settings and status easer and more consistent. • If you’ve embedded Allcv into your solution, keep using it. Consider changing if possible • You
Slide 21: Questions
Questions ZEBRA TECHNOLOGIES 21
Slide 22: Thank You
Thank You ZEBRA and the stylized Zebra head are trademarks of Zebra Technologies Corp., registered in many jurisdictions worldwide. All other trademarks are the property of their respective owners. ©2023 Zebra Technologies Corp. and/or its affiliates. All rights reserved.