Information in this document is subject to change without notice. The software described in this document
is furnished under a license agreement or nondisclosure agreement. The software may be used or copied
only in accordance with the terms of those agreements.
For further information regarding legal and proprietary statements, please go to:
SOFTWARE:http://www.zebra.com/linkoslegal
COPYRIGHTS:http://www.zebra.com/copyright
WARRANTY:http://www.zebra.com/warranty
END USER LICENSE AGREEMENT: http://www.zebra.com/eula
Terms of Use
Proprietary Statement
This manual contains proprietary information of Zebra Technologies Corporation 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.
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.
Publication Date
April 28, 2022
2
About This Document
Who Should Use This Document
The manual is targeted to an application developer who requires access to POS-specific peripheral
devices.
OPOS Web Sites
Refer to the following web sites for Open Point of Service (OPOS) information:
•Reference implementation — Common Control Objects: http://monroecs.com/opos.htm
How This Document Is Organized
The Application Programmer’s Guide is set up as follows:
•OPOS Information on page 7
•Supported Bar Codes and Fonts on page 9
•Supported Specifications and Printers on page 14
•Common Properties, Methods, and Events on page 16
•Driver Installation on page 28
•Device Manager on page 34
•Test Application on page 62
•ZPL Fonts and Bar Codes on page 70
3
Contents
About This Document ........................................................................................................................ 6
Who Should Use This Document..................................................................................... 6
OPOS Web Sites ............................................................................................................. 6
How This Document Is Organized ................................................................................... 6
Changing Bitmapped Font Size ....................................................................... 73
Font Matrices ................................................................................................................. 74
Bar Codes ..................................................................................................................... 77
Basic Format for Bar Codes ................................................................................... 78
Bar Code Field Instructions .................................................................................... 78
Bar Code Command Groups .................................................................................. 80
6
OPOS Information
OLE for Retail POS Controls
The goal of this document is to provide an overview and programming guide for the Zebra ZPL & CPCL
Printer Driver for OPOS driver implementation.
How an Application Uses an OPOS Control
The first action the application must take on the Control is to call its Open method. The parameter for this
method selects a device name to associate with the Control. The Open method performs the following
steps:
•Establishes a link to the device name that, in our case, is the Windows
•Initializes the properties OpenResult, Claimed, DeviceEnabled, DataEventEnabled, FreezeEvents,
AutoDisable, DataCount, and BinaryConversion, as well as descriptions and version number of the
OPOS Control layers. Additional class-specific properties may also be initialized.
Several applications may have an OPOS Control open at the same time. Therefore, after the device is
opened, the application will need to call the ClaimDevice method to gain exclusive access to the device.
The device must be claimed before the Control allows access to its methods and properties. Claiming the
device ensures that other applications do not interfere with the use of the device. The application may call
the ReleaseDevice method when the device can be shared by other applications—for instance, at the end
of a transaction.
®
printer driver name.
Before using the device, the application must set the DeviceEnabled property to TRUE. This value brings
the device to an operational state, while FALSE disables the device.
After the application has finished using the device, the DeviceEnabled property should be set to FALSE,
then the ReleaseDevice method, and finally the Close method should be called to release the device and
associated resources. Before exiting, an application should close all open OPOS Controls.
7
Summary
OPOS Information
In summary, the application follows this general sequence:
•Open method: Call to link the Control Object to the Service Object.
•ClaimDevice method: Call to gain exclusive access to the device. Required for exclusive-use devices;
optional for some sharable devices.
•DeviceEnabled property: Set to TRUE to make the device operational.
•Use the device.
•DeviceEnabled property: Set to FALSE to disable the device.
•ReleaseDevice method: Call to release exclusive access to the device.
•Close method: Call to release the Service Object from the Control Object.
8
Supported Bar Codes and
Fonts
Supported Bar Codes
Barcode SymbologySupported in ZPLSupported in CPCL
CodabarYesYes
Code 128YesYes
* Code 128 ParsedYesYes
Code 39YesYes
Code 93YesYes
† DataMatrix
* EAN 128YesYes
* EAN 13s
* EAN 8S
EANJan 13YesYes
EANJan 8YesYes
ltfYesYes
* MaxicodeYesYes
* PDF417YesYes
† QRCode
* GS1DataBarYesYes
* GS1DataBarExpandedYesYes
TFYesNo
UPC-AYesYes
* UPC-AS
NOTES:
*Identifies those Barcodes that have no center and right alignments, and the driver will return E_ILLEGAL when used
with PTR_BC_CENTER or PTR_BC_RIGHT.
1) Supports the UPCA with a 5-digit extension for the CPCL firmware.
2) Supports the UPCE with a 5-digit extension for the CPCL firmware.
3) Supports the EAN-x with a 5-digit extension for the CPCL firmware.
† Properties for 2D barcodes:
4) DataMatrix barcode parameters should be in the following range:
Width: 1; Height : <= 30 (depending on width of printer); Alignment: left, center, or right; Text Position: above, below, or
none
5) QRCode parameters should be in the following range:
Width: 1 < 10; Height: 2 <= 10; Alignment: left, center, or right; Text Position: Below
4
3
3
5
1
YesNo
YesYes
YesYes
YesNo
YesYes
9
Supported Bar Codes and Fonts
Barcode SymbologySupported in ZPLSupported in CPCL
UPC-DNoNo
UPC-D2NoNo
UPC-D3NoNo
UPC-D4NoNo
UPC-D5NoNo
* OCR-AYesYes
OCR-BNoNo
UPC-EYesYes
* UPC-ES
NOTES:
*Identifies those Barcodes that have no center and right alignments, and the driver will return E_ILLEGAL when used
with PTR_BC_CENTER or PTR_BC_RIGHT.
1) Supports the UPCA with a 5-digit extension for the CPCL firmware.
2) Supports the UPCE with a 5-digit extension for the CPCL firmware.
3) Supports the EAN-x with a 5-digit extension for the CPCL firmware.
2
YesYes
† Properties for 2D barcodes:
4) DataMatrix barcode parameters should be in the following range:
Width: 1; Height : <= 30 (depending on width of printer); Alignment: left, center, or right; Text Position: above, below, or
none
5) QRCode parameters should be in the following range:
Width: 1 < 10; Height: 2 <= 10; Alignment: left, center, or right; Text Position: Below
Supported ZPL Fonts
Font Typeface
(Value for # in
ESC|#fT)
0D18 x 1024212
1F26 x 1330316
2A9 x 51216
Font D
Font D will be the default font. If nothing is specified in the print command, this font will be used. The
spacing between lines shall be 24 dots. Counting the inter-character gap of 2 dots the characters are 12
dots wide. In calculating the number of characters that can be placed on an 832 dot line, the result is 69
characters.
The spacing between lines shall be 28 dots. Counting the inter-character gap of 3 dots, the characters are
16 dots wide. In calculating the number of characters that can be placed on an 832 dot line, the result is 52
characters.
The spacing between lines shall be 12 dots. Counting the inter-character gap of 1 dots, the characters are
6 dots wide. In calculating the number of characters that can be placed on an 832 dot line, the result is 138
characters.
Note: You must install the Mono1 font. If you do not install this font, you will not receive a printout.
Font for Typeface 0
The Font for typeface 0 will be CPCL font 7. If nothing is specified in the print command this font will be
used. The spacing between lines shall be 24 dots. Counting the inter-character gap of 2 dots, the
characters are 10 dots wide. In calculating the number of characters that can be placed on an 832 dot line,
the result is 69 characters.
The spacing between lines shall be 28 dots. Counting the inter-character gap of 2 dots, the characters are
14 dots wide. In calculating the number of characters that can be placed on an 832 dot line, the result is 52
characters.
The Font for Typeface 2 will be Mono1. The spacing between lines shall be 24 dots. The character width
shall be 12 dots. This amounts to approximately 43 charters on a 3 inch printhead depending on the actual
print width in dots.
This section provides the common and specific commands for properties, methods, and events.
Summary of Common Properties
NameType/Access
AutoDisableBoolean /R/WNoNo
CapCompareFirmwareVersion Boolean /RNoNo
BinaryConversionLong R/WNoNo
CapPower ReportingLong /RYesYes
CapStatisticsReportingBoolean /RYesNo
CapUpdateFirmwareBoolean /RNoNo
CapUpdateStatisticsBoolean /RNoNo
CheckHealthTestString /RYesYes
ClaimedBoolean /RYesYes
DataCountLong /RNoNo
DataEventEnabledBoolean /R/WNoNo
DeviceEnabledBoolean /R/WYesYes
FreezeEventsBoolean /R/WYesYes
OpenResultLong /RYesYes
OutputIDLong /RYesYes
PowerNotifyLong /R/WYesYes
PowerStateLong /RYesYes
ResultCodeLong /RYesYes
ResultCodeExtendedLong /RYesYes
StateLong /RYesYes
ControlObjectDescriptionString /RYesYes
ControlObjectVersionLong /RYesYes
Service ObjectDescriptionString /RYesYes
Supported for Zebra
ZPL Printer
Supported for Zebra
CPCL Printer
16
Common Properties, Methods, and Events
NameType/Access
ServiceObjectVersionLong /RYesYes
DeviceDescriptionString /RYesYes
DeviceNameString /RYesYes
Summary of Common Methods
Name
OpenYes*Yes*
CloseYesYes
ClaimYes*Yes*
ReleaseDeviceYesYes
CheckHealthYesYes
ClearInputNoNo
ClearInputPropertiesNoNo
ClearOutputYesYes
DirectIOYesYes
CompareFirmwareVersionNoNo
ResetStatisticsNoNo
RetrieveStatisticsNoNo
UpdateFirmwareNoNo
UpdateStatisticsNoNo
*Note: The status check has been moved from the Open to the Claim function, which also implies that the driver will always open
even if the printer has an error or is not there.
Supported for Zebra
ZPL Printer
Supported for Zebra
ZPL Printer
Supported for Zebra
CPCL Printer
Supported for Zebra
CPCL Printer
Summary of Common Events
Name
DataEventNoNo
DirectIOEventYesYes
ErrorEventYesYes
OutputCompleteEventYesYes
StatusUpdateEventYesYes
17
Supported for Zebra
ZPL Printer
Supported for Zebra
CPCL Printer
Common Properties, Methods, and Events
Summary of Specific Properties
NameType/Access
CapConcurrentJrnRecBoolean /RNoNo
CapConcurrentJrnSlpBoolean /RNoNo
CapConcurrentRecSlpBoolean /RNoNo
CapCoverSensorBoolean /RYesYes
CapTransactionBoolean /RYesYes
CapConcurrentPageModeBoolean /RNoNo
CapMapCharacterSetBoolean /RNoNo
CapJrnPresentBoolean /RYesYes
CapJrn2ColorBoolean /RYesYes
CapJrnBoldBoolean /RYesYes
CapJrnCartridgeSensorLong /RYesYes
CapJrnColorLong /RYesYes
CapJrnDhighBoolean /RYesYes
CapJrnDwideBoolean /RYesYes
CapJrnDwideDhighBoolean /RYesYes
CapJrnEmptySensorBoolean /RYesYes
CapJrnItalicBoolean /RNoNo
CapJrnNearEndSensorBoolean /RNoNo
CapJrnUnderlineBoolean /RNoNo
CapRecPresentBoolean /RYesYes
CapRec2ColorBoolean /RYesYes
CapRecBarCodeBoolean /RYesYes
CapRecBitmapBoolean /RYesYes
CapRecBoldBoolean /RYesYes
CapRecCartridgeSensorLong /RYesYes
CapRecColorLong /RYesYes
CapRecDhighBoolean /RYesYes
CapRecDwideBoolean /RYesYes
CapRecDhighDwideBoolean /RYesYes
CapRecEmptySensorBoolean /RYesYes
CapRecItalicBoolean /RNoNo
CapRecLeft90Boolean /RYesYes
CapRecMarkFeedLong /RYesYes
CapRecNearEndSensorBoolean /RNoNo
CapRecPapercutBoolean /RYesYes
CapRecRight90Boolean /RYesYes
CapRecRotate180Boolean /RYesYes
Supported for
Zebra ZPL Printer
Supported for
Zebra CPCL
Printer
18
Common Properties, Methods, and Events
NameType/Access
CapRecStampBoolean /RNoNo
CapRecUnderlineBoolean /RNoNo
CapRecPageModeBoolean /RYesYes
CapRecRuledLineInt32NoNo
CapSlpPageModeBoolean /RNoNo
CapSlpRuledLIneInt32NoNo
CapSlpPresentBoolean /RNoNo
CapSlpFullslipBoolean /RNoNo
CapSlp2ColorBoolean /RNoNo
CapSlpBarCodeBoolean /RNoNo
CapSlpBitmapBoolean /RNoNo
CapSlpBoldBoolean /RNoNo
CapSlpBothSidesPrintBoolean /RNoNo
CapSlpCartridgeSensorLong /RNoNo
CapSlpColorLong /RNoNo
CapSlpDhighBoolean /RNoNo
CapSlpDwideBoolean /RNoNo
CapSlpDhighDwideBoolean /RNoNo
CapSlpEmptySensorBoolean /RNoNo
CapSlpItalicBoolean /RNoNo
CapSlpLeft90Boolean /RNoNo
CapSlpNearEndSensorBoolean /RNoNo
CapSlpRight90Boolean /RNoNo
CapSlpRotate180Boolean /RNoNo
CapSlpUnderlineBoolean /RNoNo
AsyncModeBoolean /R/WYesYes
CartridgeNotifyLong /R/WYesYes
CharacterSetLong /R/WYesYes
CharacterSetListString /RYesYes
CoverOpenBoolean /RNoNo
ErrorLevelLong /RYesYes
ErrorStationLong /RYesYes
ErrorStringString /RYesYes
FontTypefaceListString /RYesYes
FlagWhenIdleBoolean /R/WNoNo
MapCharacterSetBoolean /R/WNoNo
MapMode*
See the NOTE Regarding MapMode:
on page 21.
Long /R/WYesYes
Supported for
Zebra ZPL Printer
Supported for
Zebra CPCL
Printer
19
Common Properties, Methods, and Events
NameType/Access
PageModeAreaString /R/WYesYes
PageModeDescriptorInt32 R/WYesYes
PageModeHorizontalPositionInt32 R/WYesYes
PageModePrintAreaString /R/WYesYes
PageModePrintDirectionInt32 R/WYesYes
PageModeStationInt32 R/WYesYes
PageModeVerticalPositionInt32 R/WYesYes
RotateSpecialLong /R/WYesYes
JrnLineCharsLong /R/WYesYes
JrnLineCharsListString /RYesYes
JrnLineHeightLong /R/WYesYes
JrnLineSpacingLong /R/WYesYes
JrnLineWidthLong /RYesYes
JrnLetterQualityBoolean /R/WYesYes
JrnEmptyBoolean /RYesYes
JrnNearEndBoolean /RYesYes
JrnCartridgeStateLong /RYesYes
JrnCurrentCartridgeLong /R/WYesYes
RecLineCharsLong /R/WYesYes
RecLineCharsListString /RYesYes
RecLineHeightLong /R/WYesYes
RecLineSpacingLong /R/WYesYes
RecLineWidthLong /RYesYes
RecLetterQualityBoolean /R/WYesYes
RecEmptyBoolean /RNoNo
RecNearEndBoolean /RNoNo
RecSidewaysMaxLinesLong /RYesYes
RecSidewaysMaxCharsLong /RYesYes
RecLinesToPaperCutLong /RYesYes
RecBarCodeRotationListString /RYesYes
RecBitmapRotationListString /RNoNo
RecCartridgeStateLong /RYesYes
RecCurrentCartridgeLong /R/WYesYes
SlpLineCharsLong /R/WNoNo
SlpLineCharsListString /RNoNo
SlpLineHeightLong /R/WNoNo
SlpLineSpacingLong /R/WNoNo
SlpLineWidthLong /RNoNo
SlpLetterQualityBoolean /R/WNoNo
Supported for
Zebra ZPL Printer
Supported for
Zebra CPCL
Printer
20
Common Properties, Methods, and Events
NameType/Access
SlpEmptyBoolean /RNoNo
SlpNearEndBoolean /RNoNo
SlpSidewaysMaxLinesLong /RNoNo
SlpSidewaysMaxCharsLong /RNoNo
SlpMaxLinesLong /RNoNo
SlpLinesNearEndToEndLong /RNoNo
SlpBarCodeRotationListString /RNoNo
SlpBitmapRotationListString /RNoNo
SlpPrintSideLong /RNoNo
SlpCartridgeStateLong /RNoNo
SlpCurrentCartridgeLong /R/WNoNo
NOTE Regarding MapMode:
In the Zebra SO, MapMode applies only to RecLineCharsList settings.
•Due to the nature of the printer barcodes and how they are generated and printed Zebra allows only
specific DOT values for barcode width and height as outlined in the barcode notes.
Bitmap printing: printBitmap
•The width of the bitmap is ignored and therefore not converted.
21
Common Properties, Methods, and Events
Summary of Specific Methods
Name
Supported for:
Zebra ZPL
Printer
Zebra CPCL
Printer
Name
Zebra ZPL
Supported for:
Printer
Zebra CPCL
Printer
PrintNormalYesYesRotatePrintYesYes
PrintTwoNormalNoNoPrintBarcode *‡YesYes
PrintImmediateYesYesPrintBitmap
#
YesYes
PrintMemoryBitmapYesYesTransactionPrintYesYes
BeginInsertionNoNoValidateDataYesYes
EndInsertionNoNoSetBitmapYesYes
BeginRemovalNoNoSetLogoYesYes
ClearPrintAreaYesYesChangePrintSideNoNo
EndRemovalNoNoMarkFeedYesYes
CutPaperYesYesPageModePrintYesYes
DrawRuledLineNoNo
* NOTE: The provided OPOS constant for Data Matrix and QR code will not work with the PrintBarCode function. You must replace the provided OPOS
constant BarCodeSymbology.QRCode with the custom OPOS constant BarCodeSymbology.Other and BarCodeSymbology.DataMatrix with
(BarCodeSymbology.Other + 1). Additionally, to use the QR barcode, the driver uses the ^HB command, which is not supported on the KR403 printer.
You need custom firmware for this feature.
‡ NOTE: The effect of the PrintBarCode width parameter depends on the Barcode symbology being used.
# NOTE: The width parameter of the printBitmap method will be ignored as only the width of the actual bitmap will be taken into consideration.
Therefore the Map Mode parameter will not have any effect on this function.
For the following barcodes, the width parameter,
supplied in the PrintBarcode method, controls the
barcode module width in dots, and must be a value
between 1 and 10.
•Code 39, Code 128, Code 128 parsed
•Ean8s, Ean13s
•EanJan8, EanJan13
•ITF (Code 2 of 5)
For the following barcodes, the width parameter,
supplied in the PrintBarcode method, has no effect
and the barcodes print with fixed ZPL values
according to the description below:
•Code 93 has a fixed width as defined by the ZPL
command ^BY4.
•QR Code has a fixed width as defined by the
ZPL command ^BY2.
•Data Matrix has a fixed width as defined by the
ZPL command ^BY2.
•TF has a fixed width as defined by the ZPL
command ^BY4.
•UPCD1 to UPCD5 have a fixed width as defined
by the ZPL command ^BY2.
•UPCE has a fixed width as defined by the ZPL
command ^BY4.
For the following barcodes, the barcode
module width is calculated using the width
parameter supplied in the PrintBarcode
method.
•Codabar
•Ean128
•MaxiCode
•PDF417
•GS1 Data Bar and GS1 Data Bar
Expanded
•UPCA, UPCAs
•UPCEs
22
Summary of Events
Common Properties, Methods, and Events
NameMay Use After
DataEventNot SupportedNoNo
DirectIOEventOpen, Claim & EnableYesYes
ErrorEventOpen, Claim & EnableYesYes
OutputCompleteEventOpen, Claim & EnableYesYes
StatusUpdateEventOpen, Claim & EnableYesYes
Data Characters and Escape Sequences
The default character set of all POS printers is assumed to support at least the ASCII characters 0x20
through 0x7F, which include spaces, digits, uppercase, lowercase, and some special characters. If the
printer does not support lowercase characters, then the Service may translate them to uppercase.
Every escape sequence begins with the escape character, whose value is 27 decimal, followed by a
vertical bar (‘|’). This is followed by zero or more digits and/or lowercase alphabetic characters. The
escape sequence is terminated by an uppercase alphabetic character.
If a sequence does not begin with ESC "|", or it begins with ESC "|" but is not a valid UnifiedPOS escape
sequence, the Service will make a reasonable effort to pass it through to the printer. However, not all such
sequences can be distinguished from printable data, so unexpected results may occur.
The application can use the ESC|#E escape sequence to ensure more reliable handling of the amount of
data to be passed through to the printer. Use of this escape sequence will make an application
non-portable. The application may, however, maintain portability by performing Embedded Data Escape
sequence calls within conditional code. This code may be based upon the value of the
DeviceServiceDescription, the PhysicalDeviceDescription, or the PhysicalDeviceName property.
Supported for
Zebra ZPL
Printer
Supported for
Zebra CPCL
Printer
NOTE: This command sequence definition and the corresponding definition in the Point Card Reader
Writer Chapter, are the only known deviations from preserving the interchangeability of devices defined in
this specification. If an application finds it necessary to utilize this command sequence, please inform the
UnifiedPOS Committee with the details of its usage, so that a possible standard/generic Application
Interface may be incorporated into a future release of the UnifiedPOS Standard. In order to preserve
peripheral independence and interoperability at the Application level, it is the Committee’s position that this
command sequence should be used only as a “last resort”.
To determine if escape sequences or data can be performed on a printer station, the application can call
the validateData method. (For some escape sequences, corresponding capability properties can also be
used.)
The following escape sequences are recognized. If an escape sequence specifies an operation that is not
supported by the printer station, then it is ignored.
Commands, outlined in Table 2, perform the indicated action.
23
Common Properties, Methods, and Events
Table 2 Commands
NameDataRemarksZPL PrinterCPCL Printer
a
Paper cutESC |#PCuts receipt paper. The character '#' is replaced by an
Yes
ASCII decimal string telling the percentage cut
desired. If '#' is omitted, then a full cut is performed.
For example: The C string "\x1B|75P" requests a 75%
partial cut.
a
Feed and
Paper cut
ESC |#fPCuts receipt paper, after feeding the paper by the
RecLinesToPaperCut lines. The character '#' is
Yes
defined by the "Paper cut" escape sequence.
Feed, Paper
cut, and Stamp
ESC |#sPCuts and stamps receipt paper, after feeding the
paper by the RecLinesToPaperCut lines. The
NoNo
character '#' is defined by the "Paper cut" escape
sequence.
Fire stampESC |sLFires the stamp solenoid, which usually contains a
NoNo
graphical store emblem.
Print bitmapESC |#BPrints the pre-stored bitmap. The character '#' is
YesYes
replaced by the bitmap number. See setBitmap
method.
Print top logoESC |tLPrints the pre-stored top logo.YesYes
Print bottom
ESC |bLPrints the pre-stored bottom logo.YesYes
logo
Feed linesESC |#lFFeed the paper forward by lines. The character '#' is
YesYes
replaced by an ASCII decimal string telling the
number of lines to be fed. If '#' is omitted, then one line
is fed.
Feed unitsESC |#uFFeed the paper forward by mapping mode units. The
YesYes
character '#' is replaced by an ASCII decimal string
telling the number of units to be fed. If '#' is omitted,
then one unit
Feed reverseESC |#rFFeed the paper backward. The character '#' is
NoNo
replaced by an ASCII decimal string telling the
number of lines to be fed. If '#' is omitted, then one line
is fed.
Pass through
embedded data
ESC |#ESend the following # characters of data through to the
hardware without modifying it. The character '#' is
YesYes
replaced by an ASCII decimal string telling the
number of bytes following the escape sequence that
should be passed through as-is to the hardware.
Print in-line
barcode
ESC |#RPrints the defined barcode in-line. The character '#' is
the number of characters following the R to use in the
YesYes
definition of the characteristics of the barcode to be
printed. See details below.
Note: The QR and Data Matrix codes can be
configured with the Microsoft defined constants.
Notes:
a. All printers will perform only a full cut. The Kiosk printer KR403 is the only exception. You need to configure the partial cut in the Device Manager and
use the Escape command to activate the partial cut in your data stream.
Yes
Yes
a
a
24
Common Properties, Methods, and Events
In-line Barcode Printing
The application can use the ESC|#R escape sequence to print barcodes in-line with other print commands.
The character '#' is the number of characters following the R to use in the definition of the characteristics of
the barcode to be printed.
In the data following the R, other lower case letters and numbers are used to identify different values. The
same value definitions as defined for the printBarCode method headers and definitions are used for the
various barcode values. Converting to string the values from the definitions are consistent.
The attribute symbols are defined as follows:
s symbology h height w width a alignment
t human readable text position
d start of data
e end of sequence
The attributes must appear in the order specified in the above list.
Using a basic UPCA, center aligned, with bottom text, 200 dots height and ~400 dots wide, the command
is as follows:
ESC|33Rs101h200w400a-2t-13d123456789012e
Commands associated with Print Mode characteristics (see Table 3) are remembered until explicitly
changed.
Table 3 Print Mode Commands
NameDataRemarksZPL PrinterCPCL Printer
Font typeface
selection
Commands associated with Print Line characters (see Table 4) are reset at the end of each print method,
by an explicit reset (where applicable), or by a “Normal” sequence.
ESC |#fTSelects a new typeface for the
following data. Values for the
character '#' are:
0 = Default typeface.
= Select first typeface from the
1
FontTypefaceList property.
= Select second typeface from the
2
FontTypefaceList property.
And so on.
YesYes
25
Loading...
+ 56 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.