Zebra Technologies Corporation · NASDAQ:ZBRA

Zebra Technologies — Technical Presentation (2023)

22 slides from Zebra Technologies's technical presentation, 2023

  1. Slide 1: Printer Command Languages

    Printer Command Languages How to Speak "Printer" Leo Lowy Director, Sensor Product Management 1

  2. Slide 2: Print DNA Printers

    Print DNA Printers ZEBRA TECHNOLOGIES

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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:\

  8. 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

  9. 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”

  10. 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

  11. 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,

  12. 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

  13. 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

  14. 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 •

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. Slide 21: Questions

    Questions ZEBRA TECHNOLOGIES 21

  22. 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.

Zebra Technologies — Technical Presentation (2023) on 6ix