registered in many jurisdictions worldwide. All other trademarks are the property of their respective
owners.
Information in this document is subject to change without notice.
For further information regarding legal and proprietary statements, please go to:
COPYRIGHTS: http://www.zebra.com/copyright
WARRANTY: http://www.zebra.com/warranty
END USER LICENSE AGREEMENT: http://www.zebra.com/eula
SOFTWARE: http://www.zebra.com/linkoslegal
Terms of Use
Proprietary Statement
and its subsidiaries (“Zebra Technologies”). It is intended solely for the information and use of parties
operating and maintaining the equipment described herein. Such proprietary information may not be used,
reproduced, or disclosed to any other parties for any other purpose without the express, written permission
of Zebra Technologies.
This manual contains proprietary information of Zebra Technologies Corporation
Product Improvements Continuous improvement of products is a policy of Zebra Technologies. All
specifications and designs are subject to change without notice.
Liability Disclaimer Zebra Technologies takes steps to ensure that its published Engineering
specifications and manuals are correct; however, errors do occur. Zebra Technologies reserves the right to
correct any such errors and disclaims liability resulting therefrom.
Limitation of Liability In no event shall Zebra Technologies or anyone else involved in the creation,
production, or delivery of the accompanying product (including hardware and software) be liable for any
damages whatsoever (including, without limitation, consequential damages including loss of business
profits, business interruption, or loss of business information) arising out of the use of, the results of use of,
or inability to use such product, even if Zebra Technologies has been advised of the possibility of such
damages. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential
damages, so the above limitation or exclusion may not apply to you.
The Virtual Device-O application enables Zebra Link-OS printers to work with many
host systems that are using Datamax-O’Neil
be required to the host application. This feature can help customers to make a smooth
transition to Zebra printers and save them the time and expense of having to rewrite
their host software.
Virtual Device-O Features
The Virtual Device-O application:
• Uses existing features of Zebra printers, when available.
• Offers fonts similar to the original device. These fonts will use 120 KB or more of
memory space.
• Supports the Bluetooth
• Offers many outline fonts, barcodes, and specific commands and features of
target printer models (see Supported Fonts on page 69).
• Provides support of Datamax-O’Neil commands (see Commands on page 35).
®
printers. In most cases, no changes will
®
, Serial, Ethernet, WLAN, and USB interfaces.
8/28/18Virtual Device-O User GuideP1059537-003
Introduction
8
Supported Printers
Supported Printers
This manual describes the Virtual Device-O language for Zebra Link-OS printers and
should be used by any person who needs to support that language on one of the
following Zebra printers:
PrinterFirmware
iMZ SeriesV73.19.6Z and later
QLn SeriesV68.19.6Z and later
ZT200 SeriesV72.19.6Z and later
ZT400 SeriesV75.19.7Z and later
ZT510V80.20.02Z and later
ZT600 SeriesV80.20.02Z and later
ZD400 SeriesV77.19.14Z or V84.20.05Z and later
ZD500 SeriesV74.19.6Z and later
ZD600 SeriesV84.20.05Z and later
ZQ300 SeriesV81.20.06Z and later
ZQ500 SeriesV76.19.10Z and later
Note • The Virtual Device-O language is supported only on 203 dpi printers.
For complete printer operation, use this manual in combination with the User Guide
for your printer.
Configuring Network Connectivity
Your printer may be equipped with one or more of the following interfaces:
• Bluetooth—For detailed information to connect a Bluetooth device, refer to the
Bluetooth User Guide.
• Wired print server—For detailed information, refer to the ZebraNet Wired and Wireless Print Servers User Guide.
• Wireless print server—For detailed information, refer to the ZebraNet Wired and Wireless Print Servers User Guide.
For other connectivity options, refer to the User Guide for your printer. Copies of these
manuals are available at http://www.zebra.com/manuals.
P1059537-003Virtual Device-O User Guide8/28/18
Notes
Introduction
Notes
• Other command languages are disabled when running Virtual Device-O.
However, Set/Get/Do (SGD) commands and file download all operate properly
with Virtual Device-O enabled.
• Virtual Device-O fonts can only be used with Virtual Device-O commands. They
cannot be used with other languages.
• The Virtual Device-O mode application will not respond to CPCL, ZPL, or EPL
commands. Instead, commands will be processed by the Virtual Device-O
application.
9
8/28/18Virtual Device-O User GuideP1059537-003
Install, Register, and
Enable Virtual Device-O
This section provides you with instructions on how to install and enable the
Virtual Device-O application on one or more Zebra printers.
Supported ZTxxx and ZDxxx PRINTERS with a Display . . . . . . . . . . . . . . . . . . . . . 31
8/28/18Virtual Device-O User GuideP1059537-003
Acquiring the Virtual Device Application
To get the Virtual Device app, perform the following from your computer:
1. Open a web browser and navigate to http://www.zebra.com/virtualdevices.
2. Locate your printer type in the list of printers, and then click Download Now.
3. Fill out the information on the Virtual Device Download Request form.
4. Click Submit.
5. Read the End User License Agreement.
6. Click Accept and Begin Download Now.
Your browser prompts you to open or save the archive containing the Virtual
Device app.
7. Save and store the Virtual Device app archive file to your computer.
The archive file contains the following:
Getting Started
Acquiring the Virtual Device Application
11
•The Virtual Device .NRD file to be downloaded to a Zebra printer.
•A .txt file that contains the SGD command for immediately activating the
Virtual Device app.
8. Extract the files from the archive to your computer.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
12
Downloading the Virtual Device-O Application
Downloading the Virtual Device-O Application
Zebra provides two options to download the Virtual Device-O app to the printer.
• On a computer with the ZDownloader Utility
The ZDownloader Utility is the only method shown in this manual. For instructions
on how to download and install the ZDownloader Utility, see ZDownloader Utility
on page 74.
• On an Android device with the Zebra Printer Setup Utility for Android Devices
(available for free on Google Play™)
For information on using the Zebra Printer Setup Utility for Android Devices and to
download the user guide, navigate to http://www.zebra.com/setup.
Using ZDownloader
The ZDownloader application can update Virtual Device-O files in Zebra printers
connected by Serial, Parallel, USB, and IP Ethernet networks.
Figure 1 • Initial ZDownloader Screen
Adding Printers to the ZDownloader List
There are two ways to add printers to the list:
• Auto-Detect (use for USB or IP Ethernet interfaces)
• Manual add (use for Serial, Parallel, or IP Ethernet interfaces)
If your printer is connecting via the serial or parallel interfaces, or is not detected by
using the Auto-Detect method, use the Manual Add method.
P1059537-003Virtual Device-O User Guide8/28/18
Auto-Detect Printers
Use Auto-Detect for USB or IP Ethernet interfaces.
Note • Ethernet connected printers are detected by the application broadcasting a
UDP packet out onto the network. UDP port number 4201 is used for the
discovery process. Some networks filter out UDP packets. This means that the
ZDownloader utility may not be able to detect all of the printers on your network.
See your network administrator for more information. If you are not able to AutoDetect your network printers, follow instructions for manually adding a printer.
USB printers can only be added by using Auto-Detect. The ZDownloader utility can
support as many USB printers as your computer can support (most computers
typically can support up to 255).
Getting Started
Downloading the Virtual Device-O Application
13
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
14
Downloading the Virtual Device-O Application
To Auto-Detect printers connected via the USB or IP Ethernet interfaces,
perform the following steps:
1. In the ZDownloader toolbar, select Printer > Auto-Detect.
OR
Right-click in the ZDownloader window and select Auto-Detect Printers.
The printers detected are added to the printer list.
Manually Add Printers
To manually add printers connected via the Serial, Parallel, or Network
interfaces, perform the following steps:
1. In the ZDownloader toolbar, select Printer > Add….
OR
Right-click in the ZDownloader window and select Add Printer….
The following window appears.
P1059537-003Virtual Device-O User Guide8/28/18
Downloading the Virtual Device-O Application
2. Add a printer name and your printer model in the appropriate fields.
3. What type of printer are you adding?
-
If you are adding a…Then…
Serial PrinterGo to Adding a Serial Printer.
Parallel PrinterGo to Adding a Parallel Printer on page 17.
Network PrinterGo to Adding a Network Printer on page 18.
Adding a Serial Printer
4. Select the serial port to which the printer is connected.
Getting Started
15
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
16
Downloading the Virtual Device-O Application
5. Click Port Settings.
The following window appears.
6. Adjust the settings as necessary. The printer’s serial port settings must match the
computer’s serial port settings. For more information about the settings, refer to
the User Guide for your printer.
7. Click OK to save the port settings.
8. Click OK to add the printer.
P1059537-003Virtual Device-O User Guide8/28/18
Adding a Parallel Printer
9. Set Communication Type to Parallel.
The available parallel ports will be shown in the Port drop-down box.
Getting Started
Downloading the Virtual Device-O Application
17
10. Select the port to which the printer is connected. No additional configuration is
necessary.
11. Click OK to add the printer.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
18
Downloading the Virtual Device-O Application
Adding a Network Printer
12. Set Communication Type to Network.
The following window appears.
13. Enter the printer’s IP address.
14. Click OK to save the network settings.
15. Click OK to add the printer.
Modifying Printers in the List
To change printer settings for a printer in the list, perform the following steps:
1. Select the printer to modify.
P1059537-003Virtual Device-O User Guide8/28/18
Downloading the Virtual Device-O Application
2. In the toolbar, select Printer > Modify Printer….
OR
Right-click on the printer and select Modify Printer….
The printer settings for the selected printer are displayed.
Getting Started
19
3. Modify the settings as desired.
4. Click OK to save the settings.
Deleting Printers from the List
To delete printers from the list, perform the following steps:
1. Select one or more printers to delete.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
20
Downloading the Virtual Device-O Application
2. In the toolbar, select Printer > Delete.
OR
Right-click on one of the selected printers and select Delete Printer(s).
The printer is removed from the list.
Downloading the Virtual Device App to Selected Printers
To download the Virtual Device-O app to your printer(s), you must select the file to
send to each printer. ZDownloader, by default, downloads files to one printer at a time.
If you have multiple printers to update and want to speed up the process, you can
increase the number of simultaneous downloads.
Note • More simultaneous downloads require more of your computer resources.
Some computers may slow down with simultaneous downloads or as more printers
are added for simultaneous downloading.
To allow simultaneous downloads, perform the following step:
1. Click Tools > Options….
The following prompt appears.
2. Raise the number shown to allow multiple simultaneous downloads.
3. Click OK.
P1059537-003Virtual Device-O User Guide8/28/18
Getting Started
Downloading the Virtual Device-O Application
To download the Virtual Device app file to one or more printers, perform the
following steps:
1. Select the printers to which you want to download the Virtual Device-O app file. To
select multiple printers, hold down the Ctrl or Shift key, and then click on the
desired printers.
21
2. In the toolbar, select File > Select Firmware File….
OR
Right-click on one of the selected printers and select Select Firmware File….
3. Navigate to the Virtual Device app file that you acquired previously.
4. Click Open.
The file that you selected appears under Download File for the selected printers.
Printers that are present in the list but that do not have a file selected will be
ignored when Downloading starts.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
22
Downloading the Virtual Device-O Application
5. Start the download process by doing one of the following:
•Select Printer > Download to Selected.
•Select the printer(s) of interest and select the Printer and then select
Download To Selected.
6. In the toolbar, select Printer > Download All.
OR
Right-click in the ZDownloader window and select Download All.
After downloading has begun, the progress of each printer will be shown in the
Download Status column.
Canceling a Download in Progress
The Cancel Download toolbar button and the Printer > Cancel Download menu
options become active when the files are downloading.
To cancel downloading to ALL printers in the list, perform the following step:
1. Click Printer > Cancel Download.
OR
Right-click in the ZDownloader window and select Cancel Download.
To cancel downloading to SPECIFIC printers in the list, perform the following step:
1. Select one or more printers with a download in progress.
2. Click Printer > Cancel Download.
OR
Right-click on a selected printer and select Cancel Download.
P1059537-003Virtual Device-O User Guide8/28/18
Registering the Virtual Device
ZDownloader maintains a log file of all items downloaded to a Zebra printer along with
the printer serial number. You can register your Virtual Device installation with Zebra
Repair and Tech Support to ensure that a printer sent in for repair is returned with the
Virtual Device installed, and when engaging Zebra Tech Support, they will have
records of the item being loaded. To register your Virtual Device installation, you must
send the log file created by ZDownloader to the Zebra log file management group.
ZDownloader Log File
To send the log file, complete these steps:
1. Based on your operating system, navigate to the appropriate folder:
•Microsoft® Windows® XP
C:\Program Files\Common Files\FirmwareDownloader
•Microsoft Windows 7, Windows 8, and Windows 10
C:\ProgramData\Zebra Technologies\Firmware Downloader and
ZBI Key Manager
Getting Started
Registering the Virtual Device
23
2. Copy the log file (DownloadLog.txt), and email to Zdownloader@zebra.com.
If you are downloading from several computers, you need to send the log file from
each computer. If you download files to printers on one day and do not send the
file the same day, please note this in your email so that the log file management
group picks up the previous load detail. Otherwise, they only pick up the load data
for the day that the log file is sent.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
24
Enabling the Virtual Device
Enabling the Virtual Device
You can enable Virtual Device-O by sending a Set/Get/Do (SGD) command to the
printer or by selecting the option through the printer’s menus.
Using an SGD Command
To enable Virtual Device-O on your printer, send the following command:
! U1 setvar "apl.enable" "apl-d"
To disable Virtual Devices on your printer and return to normal function, send the
following command:
! U1 setvar "apl.enable" "none"
You must restart the printer after changing the value of apl.enable. For more
information about this SGD command, see apl.enable on page 67.
Using the User Menus
This section includes instructions for the following printers:
• QLn420 Printers on page 25
• QLn320 and QLn220 Printers on page 28
• Supported ZTxxx and ZDxxx PRINTERS with a Display on page 31
If necessary, refer to the User Guide for your printer for additional information about
your printer’s control panel.
P1059537-003Virtual Device-O User Guide8/28/18
QLn420 Printers
PRINTER READY
VXXXXXXX
SETTINGS
LANGUAGE
1. From the printer’s idle display screen, press the LEFT SOFT KEY to select the
Home icon.
Getting Started
Enabling the Virtual Device
25
The printer displays the Home Menu.
2. Use the ARROWS to navigate to the LANGUAGE menu.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
LANGUAGE
▼ENGLISH▲
VIRTUAL DEVICE
▼NONE▲
26
Enabling the Virtual Device
3. Press OK.
The printer displays the LANGUAGE selection screen.
4. Use the LEFT or RIGHT ARROW to navigate to the VIRTUAL DEVICE selection
screen.
P1059537-003Virtual Device-O User Guide8/28/18
Enabling the Virtual Device
VIRTUAL DEVICE
▼APL-D▲
USE
5. Use the UP or DOWN ARROW to scroll to the APL-D option.
6. Press the RIGHT SOFT KEY to select USE.
Getting Started
27
The printer restarts and uses the Virtual Device that you selected.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
Zebra QLn320
FW ver:XXXXXXXXXX
Baud Rate:115200
Batteryok
IP Addr:10.14.205.138
Menu
CommunicationBack
SettingsBack
28
Enabling the Virtual Device
QLn320 and QLn220 Printers
1. From the printer’s idle display screen, press the LEFT SOFT KEY to select the
Home icon.
The printer displays the Home Menu.
2. Use the ARROWS to navigate to the SETTINGS menu.
P1059537-003Virtual Device-O User Guide8/28/18
3. Press OK.
Virtual Dev: none ▲▼
MenuUseBack
Virtual Dev: apl‐d ▲? ▼
MenuUseBack
The printer displays the VIRTUAL DEVICE selection screen.
Getting Started
Enabling the Virtual Device
29
4. Press the RIGHT ARROW to highlight the up arrow on the display.
5. With the up arrow highlighted, press the OK button until you scroll to the APL-D
option.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
30
Enabling the Virtual Device
6. Press the LEFT ARROW to highlight APL-D
7. Press OK to select USE.
The printer restarts and uses the Virtual Device that you selected.
P1059537-003Virtual Device-O User Guide8/28/18
Supported ZTxxx and ZDxxx PRINTERS with a Display
PRINTER READY
VXXXXXXX
HOME MENU
SETTINGS
Note • The ZT230 control panel is shown in this procedure. The control panel for the
other printers is similar.
1. From the printer’s idle display screen, press the LEFT SELECT KEY to select the
Home icon.
Getting Started
Enabling the Virtual Device
31
The printer displays the Home Menu.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
HOME MENU
SETTINGS
▼
LANGUAGE
ENGLISH
▲
32
Enabling the Virtual Device
2. Use the ARROWS to navigate to the LANGUAGE menu.
3. Press OK.
The printer displays the LANGUAGE selection screen.
P1059537-003Virtual Device-O User Guide8/28/18
Getting Started
▼
VIRTUAL DEVICE
NONE
▲
▼
VIRTUAL DEVICE
APL-D
▲
USE
Enabling the Virtual Device
4. Use the LEFT or RIGHT ARROW to navigate to the VIRTUAL DEVICE selection
screen.
33
5. Use the UP or DOWN ARROW to scroll to the APL-D option.
8/28/18Virtual Device-O User GuideP1059537-003
Getting Started
▼
VIRTUAL DEVICE
APL-D
▲
USE
34
Enabling the Virtual Device
6. Press the RIGHT SOFT KEY or OK to select USE.
The printer restarts and uses the Virtual Device that you selected.
P1059537-003Virtual Device-O User Guide8/28/18
Commands
This section provides a detailed listing of commands for use on your Zebra printer
with Virtual Device-O app.
ESC A nSets interline spacingYesESC A n on page 41
ESC BBegins acceptance of compressed
graphics
ESC C nSets form lengthYesConsumes, but does not
ESC EEnds acceptance of compressed
graphics
®
ESC EZGoes to Easy Print
ESC HnIncreases the height of the font n times.YesESC Hn on page 43
ESC Q n1n2Advances the specified distance from
the black mark
ESC R nSelects an international character setYesESC R n on page 44
ESC V n1 n2Enters bitmapped graphics modeYesESC V n1 n2
ESC w nSelects a fontYesESC w n on page 46
FFForm feed (goes to top of form)YesFF on page 47
modeYesESC EZ on page 43
YesESC ! n on page 40
YesESC B, ESC E
on page 42
process
YesESC B, ESC E
on page 42
YesESC Q n1n2 on page 43
on page 45
LFLine feed (advances paper)YesLF on page 47
SISets single-wide print modeYesSI on page 47
SOSets double-wide print modeYesSO on page 48
8/28/18Virtual Device-O User GuideP1059537-003
Commands
38
Supported Commands
Easy Print Commands
Table 2 • Supported Easy Print Commands
CommandDescriptionSupportedComments/See Also
{AHEAD:nnn}Advances the paperYesAhead Command
{AHEAD:nnn}
on page 49
{BACK:nnn}Moves the paper backYesBack Command
{BACK:nnn} on page 49
{IPL:0xAA55}Initial program loadNoConsumes, but does not
process
{LP}Line printer modeYesLine Printer Mode {LP}
on page 49
{Print ...}PrintYesPrint {Print...}
on page 50
{S}StatusYesStatus {S} on page 54
{TP}Prints self-test resultsYesSelf Test Printout {TP}
on page 54
{TP1}Prints limited self-test resultsYesLimited Self Test
Printout {TP1}
on page 54
Query Commands
Table 3 • Supported Query Commands
CommandDescriptionSupportedComments/See Also
ESC {BT?}Returns battery voltage and temperatureYesESC {BT?} on page 55
ESC {CF?}Returns information about configurable
options
ESC {CN!}Cancels demand printingNoConsumes, but does not
ESC {DQ?}Returns remaining quantity of imagesNoConsumes, but does not
YesESC {CF?} on page 56
process
process
ESC {FM?}Returns a list of all formats currently
saved to the printer
ESC {FN?}Returns a list of all available fontsYesESC {FN?} on page 59
ESC {GR?}Returns a list of all graphics currently
saved to the printer
ESC {MR?}Returns the magnetic card reader
configuration
P1059537-003Virtual Device-O User Guide8/28/18
YesESC {FM?} on page 58
YesESC {GR?} on page 60
NoConsumes, but does not
process
Commands
Supported Commands
Table 3 • Supported Query Commands (Continued)
CommandDescriptionSupportedComments/See Also
39
ESC {MY?}Returns the amount of memory
available, used, and remaining
ESC {PH?}Returns information about the printheadYesESC {PH?} on page 62
ESC {RE!}Resets the printerYesESC {RE!} on page 62
ESC {RS?}Returns data read for a swiped magnetic
card
ESC {ST?}Returns information about the printer’s
status
ESC {VR?}Returns the version number of the
firmware, boot block, and downloaded
files
YesESC {MY?} on page 61
NoConsumes, but does not
process
YesESC {ST?} on page 63
YesESC {VR?} on page 65
PK80 Commands
Table 4 • Supported PK80 Commands
CommandDescription
DC2 (0x12)Sets the pica pitch mode and cancels the double-wide, emphasized, and
condensed modes.
DC4 (0x14)
SO (0x0E)
SI (0x0F)
Cancels the double-wide mode set by SO.
Sets double-wide mode (if not in condensed mode) for one line only and cancels
the condensed mode (if not in condensed mode).
Sets condensed mode (if not in double-wide mode) and cancels the double-wide
mode (if in double-wide mode).
Esc! (0x00)Enables 10 cpi
Esc! (0x01)Enables 12 cpi
MF8i Commands
Table 5 • Supported MF8i Commands
CommandDescription
Esc W1Double-wide printing on
Esc W0
Esc e
Esc :
8/28/18Virtual Device-O User GuideP1059537-003
Double-wide printing off
End print job status report
Set Elite pitch (12 cpi)
Commands
40
Line Print Commands
Line Print Commands
CR
Description Carriage Return
ESC ! n
Syntax
Notes
command prints the line and advances the paper. Both commands are available for
the convenience of programmers who may be used to using one or the other. To print
and advance a number of lines, use that number of CR commands, LF commands, or
a combination of the two.
Description Sets double-high and double-wide print mode for one line.
Syntax
CR
ASCII equivalentCR
Decimal equivalent13
Hex equivalent0D
Like the Line Feed command (see LF on page 47), the Carriage Return
<ESC>!n
ASCII equivalentESC!n
Decimal equivalent2733n
Hex equivalent1B21n
Range Set the value for n as described below:
n =
10h16dDouble High
20h32dDouble Wide
30h48dDouble High and Double
Description
Wide
Notes Changes the font height, font width, or both to double the size for one line.
This command applies to the entire line.
P1059537-003Virtual Device-O User Guide8/28/18
ESC @
Description Resets the printer
Commands
Line Print Commands
41
ESC A n
Syntax
Default 20.4 cpi font (n = 33 decimal, 21 hexadecimal)
Range 21–26 hex
<ESC>@
ASCII equivalentESC@
Decimal equivalent2764
Hex equivalent1B40
Notes Resets the printer to defaults.
Description Sets the interline spacing
Syntax
<ESC>An
ASCII equivalentESCAn
Decimal equivalent2765n
Hex equivalent1B41n
Default n = 0
Range 1–155
Notes In the command syntax, n (an 8-bit binary number) represents the number of
blank dot lines fed between character lines. After the completion of the current line,
the n blank lines are added before the next line begins printing.
8/28/18Virtual Device-O User GuideP1059537-003
Commands
42
Line Print Commands
ESC B, ESC E
Description Accepts (ESC B) or ends acceptance of (ESC E) compressed graphics
Syntax
<ESC>B
ASCII equivalentESCB
Decimal equivalent2766
Hex equivalent1B42
Syntax <ESC>E
ASCII equivalentESCE
Decimal equivalent2769
Hex equivalent1B45
Notes
The printer accepts compressed graphics data, which is then uncompressed
and printed.
After you send the command to accept graphics data (ESC B), each dotline must
begin with one of the following letters:
U = uncompressed dotline
G = compressed dotline (using a run-length encoding scheme)
Compressed graphics mode requires a graphic image the same width as the
printhead in use.
A = advance the specified number of dotlines
An A followed by a single byte count indicates the number of dotlines to
advance.
When all data has been sent, the final bytes must be ESC E to end acceptance of
compressed graphics data.
This command uses the SGD “apl.o.graphics_byte_width” to specify the byte width of
the graphic. The default value for this setting is the width of the printhead.
Printhead WidthDots AcrossBytes AcrossDots Per Inch
2 in.38448203
3 in.57672203
4 in.832104203
P1059537-003Virtual Device-O User Guide8/28/18
ESC EZ
Description Goes to Easy Print mode.
Commands
Line Print Commands
43
ESC Hn
Syntax
Notes
Description Increases the height of the font n times.
Syntax
Notes
applies to the entire line.
<ESC>EZ
ASCII equivalentESCEZ
Decimal equivalent276990
Hex equivalent1B455A
Places the printer in Easy Print mode. (You must use uppercase letters.)
<ESC>Hn
ASCII equivalentESCHn
Decimal equivalent2772n
Hex equivalent1B48n
Multiply the height of the font by the number specified by n. This command
ESC Q n1n2
Description Advances the specified distance from the black mark
Syntax
Notes Advance the paper n1n2 dot lines from the black mark (Q mark).
<ESC>Q n1 n2
ASCII equivalentESCHn1n2
Decimal equivalent2781n1n2
Hex equivalent1B51n1n2
8/28/18Virtual Device-O User GuideP1059537-003
Commands
44
Line Print Commands
ESC R n
Description Selects an International character set.
Syntax
<ESC>Rn
ASCII equivalentESCRn
Decimal equivalent2782n
Hex equivalent1B52n
Notes
Set the value for n as described below:
n
Country
0USA
1France
2Germany
3UK
4Denmark
5Sweden
6Italy
7Spain
P1059537-003Virtual Device-O User Guide8/28/18
ESC V n1 n2
Description Enters bitmapped graphics mode.
Commands
Line Print Commands
45
Syntax
<ESC>V n1n2
ASCII equivalentESCVn1n2
Decimal equivalent2486n1n2
Hex equivalent1B56n1n2
Notes
In the command syntax, the next (n1 * 254 + n2) dot lines are printed as
bitmapped graphics. The command is used to print user-generated bitmaps across
the width of the printhead. After receipt of this command, the printer dumps the binary
data supplied directly to the printhead. A bit set to 1 means the dot is on, and a bit set
to 0 means the dot is off.
Graphics printed using this command must be the exact width of the printhead in bits.
Bit 7 of the first byte of data received prints at the left-most dot on the printhead as you
view the printhead with the paper feeding away from you. The printer remains in
bitmapped graphics mode until the number of bytes necessary to fill the specified
number of lines of print have been received by the printer.
This command uses the SGD command apl.o.graphics_byte_width to specify
the byte width of the graphic. The default value for this setting is the width of the
printhead.
Printhead WidthDots AcrossBytes AcrossDots Per Inch
2 in.38448203
3 in.57672203
4 in.832104203
8/28/18Virtual Device-O User GuideP1059537-003
Commands
46
Line Print Commands
ESC w n
Description Selects a font
Syntax
<ESC>wn
ASCII equivalentESCwn
Decimal equivalent27119n
Hex equivalent1B77n
Default MF204, a 20.4 cpi font (n = 33 decimal or 21 hexadecimal)
Notes Selects a font (see Table 6), given n, a binary eight-bit number. The first three
fonts in the table are permanent fonts. The next four may be removed.
Table 6 • Line Printer Mode Fonts
Name
Font
Characters/
Inch
ASCIIDecHex
Dots
Wide
Dots
High
Description
MF0555.5# 3523373996 chars large block
MF0727.2” 3422283196 chars large block
MF10210.2(space
)
32202026223 chars medium block
bold
charac
ter
MF10710.7&3826192696 chars large block bold
MF18518.5$3624112496 chars large block
MF20420.4!33211024224 chars block normal
MF22622.6%372592497 chars small block
IM5X722.1?633F5796 chars impact 5×7
IM5X822.1@64405896 chars impact 5×8
Note: For more specific information about fonts, see Table 7, Supported Fonts on page 70.
P1059537-003Virtual Device-O User Guide8/28/18
FF
Description Form feed (goes to top of form)
Commands
Line Print Commands
47
LF
Syntax
Notes
Description Line feed (advances paper)
Syntax
Notes
command prints the line and advances the paper. Both commands are available for
the convenience of programmers who may be used to using one or the other. To print
and advance a number of lines, use that number of CR commands, LF commands, or
a combination of the two.
FF
ASCII equivalentFF
Decimal equivalent12
Hex equivalent0C
Prints the line and advances the paper to top of the next form.
LF
ASCII equivalentFF
Decimal equivalent10
Hex equivalent0A
Like the Carriage Return command (see CR on page 40), the Line feed
SI
Description Sets single-wide print mode
Syntax
Notes
printing) command.
8/28/18Virtual Device-O User GuideP1059537-003
SI
ASCII equivalentSI
Decimal equivalent15
Hex equivalentOF
Prints the current font in single width. Effectively cancels an SO (double-wide
Commands
48
Line Print Commands
SO
Description Sets double-wide print mode
Syntax
Notes
command or a Carriage Return (CR) is received to cancel it.
SO
ASCII equivalentSO
Decimal equivalent14
Hex equivalentOE
Prints the current font in double width until an SI (single-wide printing mode)
P1059537-003Virtual Device-O User Guide8/28/18
Easy Print Commands
Easy Print commands have a unique syntax. The left bracket begins the command
set, followed by the command. The right bracket ends the command set.
Example • For the Easy Print command {Ahead:nnn}, enter the following:
{
AHEAD:nnn
}
Ahead Command {AHEAD:nnn}
Description AHEAD:nnn or Ahead:nnn or A:nnn advances the paper by nnn
dotlines. The Ahead command is an alternative to manually advancing the paper.
Commands
Easy Print Commands
49
Syntax
Range 1–65,000
{AHEAD:nnn}
Notes The command must be enclosed in left and right brackets.
Back Command {BACK:nnn}
Description BACK:nnn or Back:nnn or B:nnn backs up the paper by nnn dotlines.
The Back command repositions the edge of the paper for minimum paper waste.
Syntax
Range 1–200
{BACK:nnn}
Notes The command must be enclosed in left and right brackets.
Line Printer Mode {LP}
Description LP places the printer in Line Printer mode.
Syntax
{LP}
Notes
8/28/18Virtual Device-O User GuideP1059537-003
The command must be enclosed in left and right brackets. {LP} is not a Line
Printer Mode command. Execute this command only from the Easy Print Mode. If
you execute this command from within Line Printer Mode by mistake, your label or
receipt will include “{LP}” on it.
Commands
50
Easy Print Commands
Print {Print...}
Description “Print...” initiates a limited self-test printout that includes all possible
printer actions to stop the paper or rotate an image, all possible print images, and all
possible options used to alter those images.
Syntax
{Print,Global Options:@row,column:Name,Field
Options|data|}
ParameterDefinition
{A left bracket begins the command set.
Print,Include a comma after the Print command if there are one or
more global options. If there are no global options, follow the
Print command with a colon.
Global
Options:
@row,column:@row,column: specifies the row and column where the text or
Name,Include the name of the text, barcode, line, or graphic to be
See Names on page 52. If more than one global option is
used, separate them with commas. Follow the last global
option with a colon.
graphic image will appear. Separate the row and column
numbers with a comma (no spaces after the @ symbol or
around the comma).
The range for the rows is 1-65,000. In a typical print request,
there may be five or more @row,column parameters for a
single word Print.
printed. The name must always be five characters (no spaces),
including graphics that you name yourself. See Names
on page 52 for more information.
Field OptionsSee Field Options on page 53. Specify the field options that will
be used to increase the size of fonts, barcodes, graphics, or
lines. If more than one field option is used, separate them with
commas.
|Data|Specify the data to be printed or turned into a barcode.
Surround the data with vertical bars.
}A right bracket ends the command set.
Notes
•The command must be enclosed in left and right brackets.
•You can use a single print command for multiple print lines (called a print
request). This means that you do not have to repeat the word “Print” every
time you want to print another line of text.
P1059537-003Virtual Device-O User Guide8/28/18
Print {Print...} (continued)
Global Options
AHEADnnn
nnn = 1–65,000
Advances the paper the specified number of dotlines before printing.
BACKnnn
nnn = 1–200
Backs up the paper the specified number of dotlines before printing.
QSTOPnnn
nnn = a number from 1–65,000
Stops printing nnn dotlines after sensing a black mark. The printer stops even if it
has not completed the label or receipt image that it was printing.
ROTn
n = 0, 90, 180, 270
Rotates the printed image in 90-degree increments.
Commands
Easy Print Commands
51
STOPnnn
nnn = a number from 1–65,000
Stops printing nnn dotlines after beginning printing a label or receipt image.
8/28/18Virtual Device-O User GuideP1059537-003
Commands
52
Easy Print Commands
Print {Print...} (continued)
Names
Fonts Fonts and their 5-character names are listed in Table 7 on page 70.
Barcodes
Barcode5-Character Name
CodabarCOBAR
Code 39 (2:1 ratio)BC39N
Code 39 (3:1 ratio)BC39W
Code 93BC093
Code 128BC128
EAN-8EAN08
EAN-13EAN13
Interleaved 2 of 5 (ratio 2.5 to 1)BC125
Interleaved 2 of 5 (ratio 2 to 1)I2OF5
MSI/PlesseyPLESY
UCC/EAN-128EN128
UPC-AUPC-A
UPC-EUPC-E
PDF417PD417
AztecAZTEC
QRQR_BC
Lines To draw a line, specify the type of line, the line length, and the line thickness
using the parameters below. Follow the line specifications with a single vertical bar,
such as
{PRINT: @50,20:HLINE,length 250,thick 2|}
HLINE or H
Draws a horizontal line.
VLINE or V
Draws a vertical line.
lengthnnn or Lnnn
Sets the line length to nnn dots
thickn or Tn
Sets the line thickness to n dots.
P1059537-003Virtual Device-O User Guide8/28/18
Print {Print...} (continued)
Field Options
HMULTn or HMn
n = 1–255
Enlarges text or graphics n times horizontally.
VMULTn or Vn
n = 1–255
Enlarges text or graphics n times vertically.
HIGHn or Hn
n = 1–255
Changes the height of a barcode in 5 dot intervals. Default is 5 dots.
WIDEn or Wn
n = 1–255
Multiplies the width of a barcode by n. Default is 1.
Commands
Easy Print Commands
53
8/28/18Virtual Device-O User GuideP1059537-003
Commands
54
Easy Print Commands
Status {S}
Description S returns a fixed status string, which includes paper status, head latch
status, and power status.
Syntax
Reply Syntax {U:1234;x;y;z;RDY}
{S}
where x = paper status (P for paper, N for no paper)
y = head latch (D for closed, U for open)
z = power status (O for Ok, V for voltage error)
Notes The command must be enclosed in left and right brackets.
Self Test Printout {TP}
Description TP initiates a self-test printout.
Syntax
Notes
{TP}
The command must be enclosed in left and right brackets.
Limited Self Test Printout {TP1}
Description TP1 initiates a limited self-test printout. (Prints the same output as the
{TP}, which is a two-key report.)
Syntax
Notes
{TP1}
The command must be enclosed in left and right brackets.
P1059537-003Virtual Device-O User Guide8/28/18
Query Commands
Query commands take the format ESC {Query?} where Query is replaced with a
specific command.
ESC {BT?}
Description A BATTERY query returns the current battery voltage and temperature.
Commands
Query Commands
55
Query Syntax
Reply Syntax {BT!V:x;T:x,CH:x}
Example •
{BT!V:6.8;T:+25.8C,CH:C}
BT!This reply is to a BATTERY query.
V:6.8The current battery voltage is 6.8 Volts.
T:+26.0CBattery temperature is 26.0 C.
CH:CComplete charge.
Parameter
V = voltagen.nVolts
T =
temperature
CH = chargeCComplete
ESC{BT?}
Reply
±nn.nCCurrent temperature of the battery.
FFast Charge
IInitialization
NNo Charge
Definition
TTrickle Charge
WWait to restart
SB00...SBnn
= Reserved
8/28/18Virtual Device-O User GuideP1059537-003
TBDFuture option
Commands
56
Query Commands
ESC {CF?}
Description A CONFIGURATION query returns information about configurable
CF!This reply is to a CONFIGURATION query.
L:LPDefault mode = Line Printer mode.
B:096Baud rate = 9600.
P:NNo parity.
N:88 data bits.
H:BHardware and software handshaking are enabled.
D:+10%Darkness (burn time) = +10%
Y:1Paper = single ply
S:YSound = on
T:0060Timeout = 60 seconds
Description A FORMAT query returns a list of the formats currently saved to the
printer. Within a complete format definition, the query parameters are separated from
each other by commas. Different formats are separated by a semicolon, carriage
return, and line feed (; <CR> <LF>).
FM!This reply is to a FORMAT query.
N5:LABELThe format’s five-character name is LABEL.
L:DThis is a downloaded format.
UV:1The user version is 1.
UD:06/19/06The user date is 06/19/06.
US:SHIPPING
The user descriptive summary is SHIPPING LABEL1.
LABEL1
ParameterReplyDefinition
N5xxxxxFive-character format name
LR =
Location
Resident
D =
Downloaded
UVxUser version number
UDmm/dd/yyUser date (month/day/year)
USx...x
User description of format
(20 chars)
P1059537-003Virtual Device-O User Guide8/28/18
ESC {FN?}
Description A FONT query returns a list of the available fonts (permanent and
downloaded). Within a complete font definition, the query parameters are separated
from each other by commas. Different fonts are separated by a semicolon, carriage
return, and line feed (; <CR> <LF>).
FN!This reply is to a FONT query.
N5:MF107The first font has the name MF107.
N1:&(26)The one-character name is &, which is 26 in hexadecimal.
L:RThe first font is a resident font.
UV:1The user version is 1.
UD:04/02/06The user date is 04/02/06.
US:96CHARS
The font is a 96-character block bold font.
BLOCKBOLD
CPI:10.7The font has 10.7 characters per inch.
N5:MF204The next font begins and is read similarly.
Parameter
Reply
Definition
N5xxxxxFive-character font name
N1x(nn)One-character name followed by the
hexadecimal value.
LR =
Location
Resident
D =
Downloaded
UVxUser version number
UDmm/dd/yyUser date (month/day/year)
USx...x
User description of font
(20 chars)
CPInn.nNumber of font characters per inch
8/28/18Virtual Device-O User GuideP1059537-003
Commands
60
Query Commands
ESC {GR?}
Description A GRAPHICS query returns a list of the graphics that are currently
downloaded to the printer. Within a complete graphic definition, the query parameters
are separated from each other by commas. Different graphics are separated by a
semicolon, carriage return, and line feed (; <CR> <LF>).
GR!This reply is to a GRAPHICS query.
N5:LOGO1The graphic has the five-character name, LOGO1.
N1:z(7A)The one-character name is z, which is 7A in hexadecimal.
L:DThis graphic was downloaded.
UV:1The user version is 1.
UD:06/19/06The user date is 06/19/06.
US:LOGOThe user descriptive summary is LOGO.
Parameter
Reply
Definition
N5 xxxxxFive-character graphic name
N1 x(nn)One-character name followed by the
hexadecimal value.
LR =
Location
Resident
D =
Downloaded
UV xUser version number
UD mm/dd/yyUser date (month/day/year)
USx...x
User description of graphic
(20 chars)
P1059537-003Virtual Device-O User Guide8/28/18
ESC {MY?}
Description A MEMORY query returns the size of all memory available in the printer,
including the amount used and the amount remaining for the application.
Commands
Query Commands
61
Query Syntax
ESC{MY?}
Reply Syntax {MY!FS:x;FM:x;RS:x;DT:x;DR:x}
Example •
{MY!FS:64M;FM:AMD;RS:8M;DT:065536;DR:063952}
MY!This reply is to a MEMORY query.
FS:64MThe printer contains a 64 MB Flash memory.
FM:AMDFlash manufacturer: response is always AMD.
RS:8MRAM Size = 8M
DT:065536Total Flash area available for download is 65,536 kilobytes.
DR:063952Download Flash memory remaining.
ParameterReplyDefinition
FS nMFlash size: n = size of the flash memory in
megabytes
FM AMDFlash manufacturer
RSnMRam size: n = size of the RAM in megabytes
DTnnnnnnDownload total area: nnnnnn = size of Flash
memory in kilobytes
DRnnnnnnDownload Flash remaining: nnnnnn = size of
the Flash memory that is free in kilobytes
8/28/18Virtual Device-O User GuideP1059537-003
Commands
62
Query Commands
ESC {PH?}
Description A PRINTHEAD query returns information about the printhead used in
the printer.
Query Syntax
Reply Syntax {PH!TD:x;DD:x;M:x;T:x}
Example •
{PH!TD:0384;DD:203;M:LPT3245;T:+31.0C}
PH!This is a reply to a PRINTHEAD query.
TD:0384The print distance across the printhead is 384 dots.
DD:203The dot density of the printhead is 203 dots per inch.
M:LPT3245Response is always LPT3245.
T:+31.0CThe current printhead temperature is +31.0 C.
Parameter
TD nnnnTotal number of dots across the printhead.
DDnnnDensity of the printhead (dots per inch).
M x...x
T+nn.nC Current temperature of the printhead.
ESC{PH?}
Reply
(variable
width)
Definition
Response is always LPT3245.
ESC {RE!}
Description This command resets the printer.
Syntax
Reply Syntax ESC{RE!}
P1059537-003Virtual Device-O User Guide8/28/18
ESC{RE!}
ESC {ST?}
Description A STATUS query shows whether the next print request can be done or
returns information about errors from the previous print request.
Commands
Query Commands
63
Query Syntax
ESC{ST?}
Reply Syntax {ST!E:x;L:x;P:x;R:x;B:x;H:x}
Example •
{ST!E:N;L:D;P:P;R:62;B:O;H:O}
ST!This reply is to a STATUS query.
E:NNo errors were found.
L:The printhead is latched, ready to print.
P:PMedia is present.
R:5858K remains in the input buffer.
B:OBattery voltage and temperature are acceptable.
H:OThe printhead temperature is acceptable.
Parameter
Reply
Definition
E = ErrorNNo error *
cCommand error (invalid command)
dData error (such as a letter in a numeric-only
barcode)
fFont not available
gGlobal parameter error
oOverrun of buffer *
pField parameter error
qBlack mark not found *
rRow/column error
sSyntax error
L = LeverUUp
DDown
P = PaperPPresent
NNot present
R = RAMnnBuffer size remaining in kilobytes
B = Battery
condition
OOkay
TOut of temperature range
VOut of voltage range
* Rows marked with an asterisk apply to both Easy Print and Line Printer modes.
Rows without an asterisk apply only to Easy Print mode.
8/28/18Virtual Device-O User GuideP1059537-003
Commands
64
Query Commands
Parameter
H = Printhead
temperature
* Rows marked with an asterisk apply to both Easy Print and Line Printer modes.
Rows without an asterisk apply only to Easy Print mode.
Reply
OOkay
TOut of range
Definition
P1059537-003Virtual Device-O User Guide8/28/18
ESC {VR?}
Description A VERSION query returns the firmware, boot code, and download file
versions.
Commands
Query Commands
65
Query Syntax
ESC{VR?}
Reply Syntax {VR!F:x;C:x;B:x;D:x;H:x}
Example • {VR!F:6.65;C:5.40:B:5.10;D:1.3;H:5.08}
VR!This reply is to a VERSION query.
F:6.65Firmware version: response is always 6.65.
C:5.40Communication controller version: response is always
5.40
B:5.10Boot code version: response is always 5.10.
D:1.3Download file version: response is always 1.3.
H:5.08Response is always 5.08.
Parameter
Reply
Definition
F n.nnFirmware version
C n.nnCommunication controller version
B n.nnBoot code version
D n.nDownload (fonts, graphics, formats) version
Hn.nnResponse is always 5.08
8/28/18Virtual Device-O User GuideP1059537-003
Commands
66
Query Commands
Query Command Override
The query override command can be used to change the printer’s response to an
existing query or to have the printer respond to a new query. Note that, while the
definition of the new response is arbitrary, the same value is sent each time the
command is received. It is possible, though unlikely, that an application may require a
variable response to a query command in order to function properly. If so, a
modification to the printer firmware would be needed in that case.
Format:
Where:
Example • Paragraph tag x1_Example brings up the singular word.
Esc {ZQO?} “{command?}” “{response}”
Esc = 1B hex
{ZQO?} = Command to create a new query/response
“{command}” = the command to be overridden, such as QST, {QST}
“{response}” = the response to send in response to the above query, such as
{QST:JB:1234}
Esc {ZQO?} “{MD}” “{01/15/2008}”
Instructs the printer to respond as follows to the MD query: {01/15/2008}.
Query override commands can be saved in an autoexec.bat or config.sys file.
P1059537-003Virtual Device-O User Guide8/28/18
Set/Get/Do (SGD) Commands
The following SGD commands were added for use with your Virtual Device app. For
more detailed information on SGD commands, see the Programming Guide for
®
ZPL II
Guide).
apl.enable
Description This command enables or disables a Virtual Device app.
Note •
•ZPL and CPCL may not function normally when a Virtual Device app is enabled.
•You must restart the printer after changing the value of apl.enable.
Type setvar
CommandsDetails
, ZBI 2, Set/Get/Do, Mirror, and WML (formerly the ZPL II Programming
Commands
Set/Get/Do (SGD) Commands
67
setvar
apl.version
This command instructs the printer to set the RFID valid counter to zero.
Format: ! U1 setvar "apl.enable" "value"
Values:
"apl-o" = enable Virtual Device O
"none" = disable any Virtual Device app (ZPL and CPCL function normally)
Example 1 • This example shows how to enable the Virtual Device-O app:
! U1 setvar "apl.enable" "apl-o"
Example 2 • This example shows how to disable the Virtual Device-O app:
! U1 setvar "apl.enable" "none"
Description This command returns the version of the currently running Virtual
Device app.
Type getvar
CommandsDetails
getvarFormat: ! U1 getvar "apl.version"
8/28/18Virtual Device-O User GuideP1059537-003
Commands
68
Set/Get/Do (SGD) Commands
apl.framework_version
Description This command returns the level of support for Virtual Devices in the
printer operating system.
Type getvar
CommandsDetails
getvarFormat: ! U1 getvar "apl.framework_version"
apl.o.graphics_byte_width
Description This command specifies the byte width of a graphic. The default value
for this setting is the width of the printhead.
Printhead WidthDots AcrossBytes AcrossDots Per Inch