This manual contains proprietary information of Zebra Technologies Corporation. 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 expressed written permission
of Zebra Technologies Corporation.
Product Improvements
Since continuous product improvement is a policy of Zebra Technologies Corporation, all
specifications and signs are subject to change without notice.
FCC Compliance Statement
NOTE: This equipment has been tested and found to comply with the limits or a Class B
digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide
reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and
used in accordance with the instructions, may cause harmful interference to radio
communications. However, there is no guarantee that interference will not occur in a
particular installation. If this equipment does cause harmful interference to radio or
television reception, which can be determined by turning the equipment off and on, the
user is encouraged to try to correct the interference by one or more of the following
measures:
• Reorient or relocate the receiving antenna.
• Increase the separation between the equipment and receiver.
• Connect the equipment into an outlet or circuit different from that to which the receiver is
connected.
• Consult the dealer or an experienced radio/TV technician for help.
WARNING: Exposure to Radio Frequency radiation. To conform to FCC RF exposure requirements this device shall be used in accordance with the operating conditions and instructions listed in this manual.
NOTE: This unit was tested with shielded cables on the peripheral devices. Shielded
cables must be used with the unit to insure compliance.
Changes or modifications to this unit not expressly approved by Zebra Technologies Corporation could void the user’s authority to operate this equipment.
Rev. 1.00
- 3 -
Mobile Printer
SDK API Reference Guide
EM 220
Canadian Compliance Statement
This Class B digital apparatus complies with Canadian ICES-003.
Cet appareil numérique de la classe B est conforme á la norme NMB-003 du Canada.
“IC:” before the equipment certification number signifies that the Industry Canada technical
specifications were met. It does not guarantee that the certified product will operate to the
user’s satisfaction.
Liability Disclaimer
Inasmuch as every effort has been made to supply accurate information in this manual,
Zebra Technologies Corporation is not liable for any erroneous information or omissions.
Zebra Technologies Corporation reserves the right to correct any such errors and
disclaims liability resulting therefrom.
No Liability for Consequential Damage
In no event shall Zebra Technologies Corporation 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, damages for loss of
business profits, business interruption, loss of business information, or other pecuniary
loss) arising out of the use of or the results of use of or inability to use such product, even
if Zebra Technologies Corporation has been advised of the possibility of such damages.
Because some states do not allow the exclusion of liability for consequential or incidental
damages, the above limitation may not apply to you.
This SDK Manual provides information on the dll files required for Windows application
program development.
1-1 Supporting O/S & Platform
- O/S
• Microsoft Windows CE 3.x / 4.x / 5.x / 6.x
- Platform
• Pocket PC 2002
• Pocket PC 2003
• Pocket PC 2003 second edition
• Windows Mobile 5
• Windows Mobile 6
• Custom Platform for Armv4i CPU
* supported .Net Framework
1-2 Supporting Devices
This is a list of verified devices. If your PDA cpu type is Armv4 or Armv4i, it is compatible
with our module driver.
- Symbol MC3000 / MC7090 / MC9000
- Innoteletek MC3000 /
- Intermec CN2
- CASIO DT-X10M10E
- ATID AT570
- HP iPaq Series
Rev. 1.00
- 6 -
Mobile Printer
SDK API Reference Guide
EM 220
2. Properties
The constant values used in the dll files provided are declared in the BxlConst.h file.
The development environment was based on C++.
2-1 CharacterSet (LONG R/W)
As the attribute that defines the Code Page of the printer, the default setting is
BXL_CS_437. Use the SetCharacterSet(), GetCharacterSet() functions to set values or
recall previously set values.
As the attribute that defines the International Character Set of the printer, the default
setting is BXL_ICS_USA. Use the SetInterChrSet(), GetInterChrSet()functions to set
values or recall previously set values.
The International Character Sets that can be used are as follows:
This attribute sets the printer State. It can only be read, and is automatically set when
examining the printer State by using the CheckPrinter function. As State values can be
set in duplication, each value can be confirmed via bit calculation. The values of this
attribute can be recalled by using the GetState function.
Printer State values are as follows:
Code Value Description
BXL_STS_NORMAL 0 Printer status is normal
BXL_STS_PAPEREMPTY 1 No paper in printer
BXL_STS_COVEROPEN 2 The printer paper cover is open
BXL_STS_POWEROVER 4 The printer battery capacity is insufficient
BXL_STS_MSR_READY 8 Currently in MSR read mode, printing not possible
BXL_STS_PRINTING 16 Currently printing or transmitting data
BXL_STS_ERROR 32 An error has occurred
BXL_STS_NOT_OPEN 64 The printer is not open
BXL_STS_ERROR_OCCUR 128 An error has occurred
Rev. 1.00
- 8 -
Mobile Printer
SDK API Reference Guide
EM 220
2-4 PowerValue (LONG R)
This attribute sets the battery capacity value of the printer. It can only be read, and is set
every time the status of the printer battery changes. The values of this attribute can be
recalled by using the GetPowerValue function.
Battery Capacity values are as follows:
Code Value Description
BXL_PWR_HIGH 0 Battery charge status: 95%
BXL_PWR_MIDDLE 1 Battery charge status: 85% or higher
BXL_PWR_LOW 2 Battery charge status: 50% or higher
BXL_PWR_SMALL 3 Battery charge status: 25% or higher
BXL_PWR_NOT 4 Battery charge status: 25% or lower
Rev. 1.00
- 9 -
Mobile Printer
SDK API Reference Guide
EM 220
3. Methods
The functions disclosed in the provided module are declared in the ExportFunc.h file.
The development environment was based on C++.
3-1 PrinterOpen
In order to use the module, this function is enabled. For PDA types with different In/Out
ports, port settings for each are required. In general, two-way communication is possible
with just the strOutPortName setting.
long PrinterOpen(
LPCTSTR strOutPortName,
Long lTimeout
);
Inju
[Parameters]
* strOutPortName
Unicode Data ending with [in] null. The virtual Serial Port number and Baud rate of the
currently connected device is conveyed for printing. If strInPortName is NULL,
strOutPortName sets to In/Out data processing.(ex: COM4:19200)
* lTimeout
Specifies the timeout, in milliseconds, used to calculate the total timeout period for open
operations.
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_CREATE_ERROR 102 Failure to create communication target
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
BXL_READ_ERROR 301(0)Error in received value or reception failure
Rev. 1.00
- 10 -
Mobile Printer
SDK API Reference Guide
EM 220
3-2 PrinterClose
This function disables the SDK module. Functions related to printing and MSR are no
longer available for use.
long PrinterClose();
[Parameters]
None
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
3-3 LineFeed
This function dictates line feeding to the integer value conveyed for printing.
long LineFeed (
int nFeed,
);
[Parameters]
* nFeed
The [in] integer value conveys the number of lines for line feeding in the form of printing
value.
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
Rev. 1.00
- 11 -
Mobile Printer
SDK API Reference Guide
EM 220
3-4 PrintBarcode
This function supports the 1-dimension and 2-dimension barcode printing function.
long PrintBarcode(
PCHAR Data,
long symbology,
long Height,
long Width,
long Alignment,
long TextPosition
);
[Parameters]
* Data
ANSI Code Data ending with [in] null. Barcode data to be printed are conveyed.
* symbology
Defines the [in] barcode type. The barcode type is defined in Bxldll.h.
Code Value Data Number Limit Data Value Range
BXL_BCS_UPCA 101
BXL_BCS_UPCE 102
This value sets the [in] barcode height in Dot units. The value range is 1~255. Two
dimensional barcodes are not affected.
* Width
This value sets the [in] barcode width according to a value range of 2~7. If the print
area of the barcode exceeds the printing paper, barcode printing may not be possible.
Two dimensional barcodes are not affected by this value.
11 ≤ n ≤ 12 48 ≤ data ≤ 57
11 ≤ n ≤ 12 48 ≤ data ≤ 57
12 ≤ n ≤ 13 48 ≤ data ≤ 57
7 ≤ n ≤ 8 48 ≤ data ≤ 57
1 ≤ n ≤ 255
1 ≤ n ≤ 255
(even number)
1 ≤ n ≤ 255
1 ≤ n ≤ 255 0 ≤ data ≤ 127
2 ≤ n ≤ 255 0 ≤ data ≤ 127
2 ≤ n ≤ 928 0 ≤ data ≤ 255
Not supported Not supported
Not supported Not supported
This value sets the print position of the [in] barcode data. Two dimensional barcodes
have only the BXL_BC_TEXT_NONE value.
Code Value Description
BXL_BC_TEXT_NONE 0 Barcode data not printed
BXL_BC_TEXT_ABOVE 1 Barcode data printed above barcode
BXL_BC_TEXT_BELOW 2 Barcode data printed below barcode
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
BXL_BC_DATA_ERROR 500 Error in barcode data
BXL_BC_NOT_SUPPORT 501 Barcode type not supported
Rev. 1.00
- 13 -
Mobile Printer
SDK API Reference Guide
EM 220
3-5 PrintText
This function supports the text printing function.
long PrintText(
LPCTSTR Data,
long Alignment,
long Attribute,
long TextSize
);
[Parameters]
* Data
Unicode Data ending with [in] null. Conveys the barcode data to be printed.
This value sets the [in] text properties. The following values can be duplicated.
Code ValueDescription
BXL_FT_DEFAULT 0
BXL_FT_FONTB 1 Set to Font B
BXL_FT_BOLD 2 Adds Bold lettering attribute
BXL_FT_UNDERLINE 4 Adds Underlining attribute
BXL_FT_REVERSE 8 Adds Reverse lettering attribute
Font A, print using the basic device font
Basic setting value
Rev. 1.00
- 14 -
Mobile Printer
SDK API Reference Guide
EM 220
* TextSize
This value sets the [in] text size properties. The width and height values can be
duplicated.
Code Va lueDescription
BXL_TS_0WIDTH 0 Width magnification set to x1
BXL_TS_1WIDTH 16 Width magnification set to x2
BXL_TS_2WIDTH 32 Width magnification set to x3
BXL_TS_3WIDTH 48 Width magnification set to x4
BXL_TS_4WIDTH 64 Width magnification set to x5
BXL_TS_5WIDTH 80 Width magnification set to x6
BXL_TS_6WIDTH 96 Width magnification set to x7
BXL_TS_7WIDTH 112 Width magnification set to x8
Code Va lueDescription
BXL_TS_0HEIGHT 0 Height magnification set to x1
BXL_TS_1HEIGHT 1 Height magnification set to x2
BXL_TS_2HEIGHT 2 Height magnification set to x3
BXL_TS_3HEIGHT 3 Height magnification set to x4
BXL_TS_4HEIGHT 4 Height magnification set to x5
BXL_TS_5HEIGHT 5 Height magnification set to x6
BXL_TS_6HEIGHT 6 Height magnification set to x7
BXL_TS_7HEIGHT 7 Height magnification set to x8
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
Rev. 1.00
- 15 -
Mobile Printer
SDK API Reference Guide
EM 220
3-6 PrintBitmap
This function prints image files. Only Bmp files are supported.
long PrintBitmap (
LPCTSTR FileName,
long Width,
long Alignment,
long Level
);
[Parameters]
* FileName
Expressed as a row of Unicode characters, the full path of the [in] image file is set.
* Width
This value is the width of the [in] image file to be converted. The value range is 0~384.
When setting the value as below, the image size is modified to fit conditions.
Code Value Description
BXL_WIDTH_FULL -1 Set to a value of 384, image is fit to full size of paper
BXL_WIDTH_NONE -2 No variation given to image size
This value sets the color level of the [in] image. The value range is 0~100.
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
BXL_BITMAPLOAD_ERROR 400 Failure to read image file
Rev. 1.00
- 16 -
Mobile Printer
SDK API Reference Guide
EM 220
3-7 CheckPrinter
This function checks printer status and sets the printer status properties.
long CheckPrinter ();
[Parameters]
None
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_READ_ERROR 301(0)Failure to receive data
BXL_WRITE_ERROR 300 Failure to transmit data
3-8 MsrReadReady
This function switches the printer to MSR Ready status. Printing is not possible when in
Ready status.
After returning via BXL_SUCCESS and if the m_lState is BXL_STS_MSR_READY, the
standby status is deemed normal.
long CheckPrinter ();
[Parameters]
None
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_WRITE_ERROR 300 Failure to transmit data
Rev. 1.00
- 17 -
Mobile Printer
SDK API Reference Guide
EM 220
3-9 MsrReadCancel
This function deactivates the MSR Ready status of the printer.
Long MsrReadCancel();
[Parameters]
None
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_WRITE_ERROR 300 Failure to transmit data
BXLMSR_NOTREADY 602 Not in READY status
BXLMSR_FAILEDMODE 601 In automatic read mode
3-10 MsrReadTrack
This function recalls MSR data. If the MSR is in read mode and BXLMSR_DATAEMPTY
is returned, the card has not yet been read in the MSR. Scanning the card in the MSR
again can be tried, or the MSRReadCancel function can be used to cancel read mode.
Long MsrReadTrack (
PCHAR Data1,
PCHAR Data2,
PCHAR Data3
);
[Parameters]
* PCHAR Data1
[in, out] MSR Data Track 1 read from the buffer defined by the caller.
* PCHAR Data2
[out, out] MSR Data Track 2 read from the buffer defined by the caller.
* PCHAR Data3
[out, out] MSR Data Track 3 read from the buffer defined by the caller.
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_WRITE_ERROR 300 Failure to transmit data
BXLMSR_DATAEMPTY 603 Not in READY status
Rev. 1.00
- 18 -
Mobile Printer
SDK API Reference Guide
EM 220
3-11 DirectIO
This function can send and read data defined by the user.
Data to be sent to the [int] printer, data is ANSI code
* UINT uiWrite
Size of data to be sent to the [in] printer
* PCHAR pRequet
Sets the values read from the buffered defined by the [in,out] caller
* UINT uiRead
Converts the size of date to be read by the [in, out] caller to the actual size of read data
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
BXL_READ_ERROR 300(1)Error in received value or reception failure
Rev. 1.00
- 19 -
Mobile Printer
SDK API Reference Guide
EM 220
3-12 NextPrintPos
If the label function is set, the paper is fed up to the next printing position.
Long NextPrintPos ();
[Parameters]
* None
[Return Values]
Code Value Description
BXL_SUCCESS 0 Returns after function success
BXL_NOT_OPENED 101 Unable to open communication port
BXL_STATUS_ERROR 103 Error occurred during status check
BXL_WRITE_ERROR 300 Failure to transmit data
3-13 GetTrack1
This function returns MSR Track1 data. If the MSR is in read mode and NULL is returned,
the card has not yet been read by the MSR. Strip the card with the MSR again or wait for
WM_MSR_ARRIVED message. MSRReadCancel function can be used to cancel read
mode.
TCHAR * GetTrack1 ();
[Parameters]
* None
[Return Values]
If the function is successful, MSR Track1 data will be returned. If it has failed, the function
will return NULL pointer.
Rev. 1.00
- 20 -
Mobile Printer
SDK API Reference Guide
EM 220
3-14 GetTrack2
This function returns MSR Track2 data. If the MSR is in read mode and NULL is returned,
the card has not yet been read by the MSR. Strip the card with the MSR again or wait for
WM_MSR_ARRIVED message. MSRReadCancel function can be used to cancel read
mode.
TCHAR * GetTrack2 ();
[Parameters]
* None
[Return Values]
If the function is successful, MSR Track2 data will be returned. If it has failed, the function
will return NULL pointer.
3-15 GetTrack3
This function returns MSR Track3 data. If the MSR is in read mode and NULL is returned,
the card has not yet been read by the MSR. Strip the card with the MSR again or wait for
WM_MSR_ARRIVED message. MSRReadCancel function can be used to cancel read
mode.
TCHAR * GetTrack3 ();
[Parameters]
* None
[Return Values]
If the function is successful, MSR Track2 data will be returned. If it has failed, the function
will return NULL pointer.
Rev. 1.00
- 21 -
Mobile Printer
SDK API Reference Guide
EM 220
4. Message
If some events have occurred in printer, the SDK will send WM_BXL_PRINTER_
UPDATED message.
4-1 BXL_LPARAM _MSR
This message will be posted when the printer reads MSR Track data from MSR sensor.
lParam = 0
wParam
wParam is set by the following data.
Value Description
BXL_MSG_TRACK1 0x01
BXL_MSG_TRACK2 0x02
BXL_MSG_TRACK3 0x04