Command-Line Printer Control

Did you know that the Link-OS SDK has command line tools?  You don't always need to create an app to do some pretty powerful things.  Well created batch files can do some good things too.  This Blog will go through a common use case for the SDK command line tools and how to implement it.

Recently a customer contacted us because they had an old tool they were using to automatically convert image files into Zebra downloadable image files.  The old tool was not compatible with newer Windows versions and they were looking for an alternative without having to write an app themselves.

We recommended that they look at the command line tools attached to the SDK.  Try this yourself... after installing the Link-OS SDK, navigate to the install folder then "/PC/[build version]/" and (PC)shift-right click the "lib" folder.  Select "Open command window here".  Then type "java -jar ZSDK_API.jar help".  The SDK will give you a list of commands you can run from a command line. The PC.NET and new card printer SDKs for Java and .NET also have command line tools.

For this customer, I put together a sample batch file that they could modify to read all the files from one folder and convert them and put the new files in a different folder.  The below batch file is fairly basic, but any IT person could modify it to change folder locations, automate running the file, or add options to set the output specific image sizes.

:: Batch file - convert.bat

@Echo Off


:: Location of original image files.  Can be .png, .jpg, .bmp, etc.

set src=C:\My Documents\Pictures\Test

:: Location of where you want the new ZPL converted files to go.

set dest=C:\My Documents\Pictures\Dest

:: Location of the actual Link-OS SDK file to use.

set zsdk=Z:\Documents\link_os_sdk\PC\v2.12.3968\lib\ZSDK_API.jar

set i=1

:: loop through each file in the source directory

for %%f in ("%src%\*") do (

  :: show file name

    @echo %%f

  :: show full command run through the SDK

    @echo java -jar "%zsdk%" graphic "%%f" -n E:%%~nf.GRF -s "%dest%\%%~nf.grf" -v

  :: Cammand options -call the SDK and give it the source file

  ::    -name it [filename].GRF in the printer, the extension specifies the file type to convert to (PNG also possible)

  ::    -save it to the destination folder using the same file name as the original

  ::    -verbose feedback

    java -jar "%zsdk%" graphic "%%f" -n E:%%~nf.GRF -s "%dest%\%%~nf.grf" -v


Other things you can do with the command line tools are create and work with settings profiles, convert fonts, reset the printer, update Wi-Fi certificates, and, of course, several options to print.


Z:\Documents\link_os_sdk\PC\v2.14.5097\lib>java -jar ZSDK_API.jar help

ZebraLink Multiplatform SDK - Version 2.14.5097

usage: java -jar ZSDK_API.jar <commmand> [<args>]

Commands include:

backup      - Creates a backup of the printer and stores it to the local file

certificate - Sends a certificate file directly to a Zebra printer.

clock       - Set the Real-Time Clock.

config      - Prints the configuration label.

convertfont - Converts a TTF/TTE font for storage on a Zebra Printer.

default     - Restore printer defaults.

delete      - Deletes a file on the printer's file system.

discover    - Discover printers

get         - Retrieves files from the printer.

graphic     - Converts a graphic for storage on a printer

help        - Get information about other commands

loadbackup  - Loads backup onto printer. Will delete existing printer files.

loadprofile - Loads profile onto printer.

ls          - Lists the files on the remote printer

mirror      - Uploads a zprofile to a mirror server

print       - Print XML or CSV files

profile     - Creates a profile based on the printer

reset       - Resets a printer

send        - Sends data to the raw port on the printer

sendJSON    - Sends JSON data to the printer

status      - Retrieve the status of the printer

store       - Stores a local file onto a printer.

template    - Fill in a zpl/cpcl template file with xml or csv

update      - Updates the firmware on the printer

weblink     - Configures the weblink address

Graphic command options:

>java -jar ZSDK_API.jar graphic --help

usage: java -jar ZSDK_API.jar graphic <graphicFile> [<options>]

Converts a graphic for storage on a printer

Options include:

-y/--height  <height>      - Image height in pixels

-x/--width   <width>       - Image width in pixels

-n/--name    <fileName>    - Name to save on the printer, if not given, will

                             default to E:IMG.GRF

-s/--save    <filePath>    - Save to a local file

-p/--printer <destination> - Printer to send the graphic to.

--tcp                      - Force connection to be made via TCP.

-d/--driver                - Force connection to be made via ZDesigner Driver.

-h/--help                  - Print the help message

-v/--verbose               - Verbose output

use --help option to display this message

We hope you find this information useful.  Don't forget to like or rate this article!

Robin West

Solution Architect

Nicolas Gingreau

Great Post Robin,

Very useful but not known by most customers. Will promote it to my partners in France as I 'm pretty sure they don't know it is possible...