CaysnPrinter打印示例程序:CaysnPrinter打印机开发包示例程序_20170531
CaysnPrinter打印示例程序C#版:CaysnPrinter打印机开发包示例程序_SampleCSharp_20170605
CaysnPrinter打印开发包接口说明文档中文版:PrinterLibs_For_Windows_zh_CN_20170531
CaysnPrinter打印开发包接口说明文档英文版:PrinterLibs_For_Windows_en_US_20170531
一 概述
1 PrinterLibs是在Windows平台用C++编写的DLL,DLL导出C风格的函数。
2 PrinterLibs函数有以下几类
A Port_XXX
以Port开头的函数,主要是打开端口,关闭端口,枚举端口。
支持通过串口,并口,USB口,网口进行打印。
备注:与上一版有差别
1 Port_SetPort函数已删除。
2 Port_Open系列函数返回值为bool,不再是BOOL。
B PAGE_XXX
以PAGE开头的函数,封装了页模式指令,可以控制打印机以页模式的方式
打印。
① PAGE_PageEnter进入页模式
② PAGE_SetPrintArea设置页模式打印区域
③ PAGE_DrawXXX系列函数在指定区域打印
④ PAGE_PagePrint打印整个页面
⑤ PAGE_PageExit退出页模式
备注:
②③可以重复调用
仅支持页模式的机型可以使用这些函数
C POS_XXX
以POS开头的函数,主要是封装了ESC/POS指令,可以控制打印机打印。
①进纸系列函数可以控制打印机进纸
②设置系列函数可以设置打印的格式等
③打印系列函数可以打印文本,条码,QR码,图片等
④查询系列函数可以查询打印机状态
⑤其他函数可以控制钱箱、切刀、蜂鸣器等
D LABEL_XXX
以LABEL开头的函数,主要封装了标签指令,可以控制标签打印机打印。
① LABEL_PageBegin 初始化一个标签页
② LABEL_DrawXXX 在标签页上画内容
③ LABEL_PageEnd 结束标签页
④ LABEL_PagePrint 打印标签页
二 函数说明
Port Function
Port_OpenCom
Syntax
bool Port_OpenCom(char * pName, intdwBaudrate, int dwParity)
Parameters
pName
端口名称。
例如:COM1,COM2,COM3...COM11...
dwBaudrate
波特率
一般取9600,19200,38400,57600,115200.
需要和打印机波特率保持一致,建议使用高波特率以获得较好的打印速度
dwParity
效验位
/*0-4=None,Odd,Even,Mark,Space */
Return value
如果打开成功,返回true。否则,返回false
Remarks
如果串口被占用,打开串口会失败。
如果波特率和打印机波特率不匹配,则无法打印。
Port_OpenTcp
Syntax
bool Port_OpenTcp(char * szIp, unsignedshort nPort)
Parameters
szIp
IP地址
例如:192.168.1.87
nPort
端口号
固定值:9100
Return value
如果打开成功,返回true。否则,返回false
Remarks
PC和打印机需要同网段的才可以连接
Port_OpenUsb
Syntax
bool Port_OpenUsb(char * pName)
Parameters
pName
端口名称。
可以通过Port_EnumUSB来得到打印机的名称。
也可以使用任意其他字符串,这时候,如果找到USB打印机,会直接打开
Return value
如果打开成功,返回true。否则,返回false
Remarks
USB打印机接到电脑上,如果设备管理器中出现了USB Printing Support,则可以使用该函数打开。
如果出现的是 Prolific USB-to-SerialComm Port,则说明这是USB虚拟串口,需要使用Port_OpenCom。
Port_OpenLpt
Syntax
bool Port_OpenLpt(char * pName)
Parameters
pName
端口名称。
例如:LPT1,LPT2,LPT3...
Return value
如果打开成功,返回true。否则,返回false
Remarks
并口只有单向通讯,只可写不可读。
一切查询状态的函数,对并口来说均是无效的。
Port_Close
Syntax
VOID Port_Close()
Parameters
Return value
Remarks
关闭端口
Port_EnumCom
枚举串口
Syntax
void Port_EnumCom(char * pBuf, int cbBuf,int * pcbNeeded, int * pcnReturned)
Parameters
pBuf
枚举到的端口列表。
cbBuf
pBuf缓冲区字节数
pcbNeeded
需要的缓冲区长度
pcnReturned
返回的端口数目
Return value
Remarks
使用范例代码如下:C++
VOID EnumComToComboBox(HWND hCbx)
{
intcbNeeded = 0;
intcnReturned = 0;
Port_EnumCom(NULL,0, &cbNeeded, &cnReturned);
if(cbNeeded)
{
CHAR * pBuf = (CHAR *)malloc(cbNeeded);
if (pBuf)
{
Port_EnumCom(pBuf,cbNeeded, &cbNeeded, &cnReturned);
CHAR* pDevice = pBuf;
for(int i = 0; i < cnReturned; ++i)
{
//ComboBox_AddString(hCbx, pDevice);
SendMessageA(hCbx, CB_ADDSTRING, 0,(LPARAM)pDevice); pDevice+= strlen(pDevice) + 1;
}
free(pBuf);
}
}
}
Port_EnumLpt
枚举并口
void Port_EnumLpt(char * pBuf, int cbBuf,int * pcbNeeded, int * pcnReturned)
Parameters
pBuf
枚举到的端口列表。
cbBuf
pBuf缓冲区字节数
pcbNeeded
需要的缓冲区长度
pcnReturned
返回的端口数目
Return value
Remarks
使用范例代码同Port_EnumCom
Port_EnumUsb
枚举USB端口
void Port_EnumUSB(char * pBuf, int cbBuf,int * pcbNeeded, int * pcnReturned)
Parameters
pBuf
枚举到的端口列表。
cbBuf
pBuf缓冲区字节数
pcbNeeded
需要的缓冲区长度
pcnReturned
返回的端口数目
Return value
Remarks
使用范例代码同Port_EnumCom
Page Function
PAGE_PageEnter
选择页模式
Syntax
bool PAGE_PageEnter()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
PAGE_PagePrint
页模式下打印页面内容
Syntax
bool PAGE_PagePrint()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
PAGE_PageExit
退出页模式
Syntax
bool PAGE_PageExit()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
PAGE_SetPrintArea
页模式下设置打印区域
Syntax
bool PAGE_SetPrintArea(int left, int top,int right, int bottom, int direction)
Parameters
left
打印区域左上角x坐标
top
打印区域左上角y坐标
right
打印区域右下角x坐标
bottom
打印区域右下角y坐标
direction
打印区域方向
direction | 打印方向 | 起始位置 |
0 | 自左向右 | 左上角(图中的A) |
1 | 自下向上 | 左下角(图中的B) |
2 | 自右向左 | 右下角(图中的C) |
3 | 自上向下 | 右上角(图中的D) |
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
下图展示了打印区域的概念
PAGE_DrawString
画文本
Syntax
bool PAGE_DrawString(wchar_t *pszString,int x, int y, int nWidthScale, int nHeightScale, int nFontType, int nFontStyle)
Parameters
pszString
要打印的内容。UNICODE编码字符串。
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
y
指定垂直方向的起始点位置离打印区域上边界的点数。(纵坐标)
nWidthScale
指定宽度放大倍数 [0,7]
nHeightScale
指定高度放大倍数 [0,7]
nFontType
字体类型
0 标准字体
1 压缩字体
nFontStyle
指定字体风格,可以为下表中的一个或者若干个(相加即可)
Value | Meaning |
0x00 | 正常 |
0x08 | 加粗 |
0x80 | 1点粗的下划线 |
0x100 | 2点粗的下划线 |
0x200 | 倒置(只在行首有效) |
0x400 | 反显(黑底白字) |
0x1000 | 每个字符顺时针旋转 90 度 |
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
页模式Draw函数并不立刻打印,只是填在页面中,直到调用了PAGE_PagePrint,才开始打印。
PAGE_DrawRect
画矩形
Syntax
bool PAGE_DrawRect(int x, int y, intnWidth, int nHeight, int nColor)
Parameters
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
y
指定垂直方向的起始点位置离打印区域上边界的点数。(纵坐标)
nWidth
指定矩形宽度
nHeight
指定矩形高度
nColor
指定矩形颜色
0 白色
1 黑色
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
如果想画线,只需要把宽度设置为1(若想画粗一点的线,可设置大一点)即可。
注意:不要画太大区域矩形,否则电源撑不住打印机会复位。
PAGE_DrawBarcode
画条码
Syntax
bool PAGE_DrawBarcode(char*pszBarcodeContent, int x, int y, int nBarcodeUnitWidth, int nBarcodeHeight,int nHriFontType, int nHriFontPosition, int nBarcodeType)
Parameters
pszBarcodeContent
条码内容
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
y
指定垂直方向的起始点位置离打印区域上边界的点数。(纵坐标)
nBarcodeUnitWidth
指定条码的基本元素宽度。
可以为以下列表中所列值(n)之一。
n | 单基本模块宽度 | 双基本模块宽度(离散型) | |
窄元素宽度 | 宽元素宽度 | ||
2 | 0.25mm | 0.25mm | 0.625mm |
3 | 0.375mm | 0.375mm | 1.0mm |
4 | 0.5mm | 0.5mm | 1.25mm |
5 | 0.625mm | 0.625mm | 1.625mm |
6 | 0.75mm | 0.75mm | 1.875mm |
nBarcodeHeight
条码高度
nHriFontType
指定 HRI(Human ReadableInterpretation)字符的字体类型。
可以为以下列表中所列值之一。
Value | Meaning |
0x00 | 标准ASCII |
0x01 | 压缩ASCII |
nHriFontPosition
指定HRI(Human ReadableInterpretation)字符的位置。
可以为以下列表中所列值之一。
Value | Meaning |
0x00 | 不打印 |
0x01 | 只在条码上方打印 |
0x02 | 只在条码下方打印 |
0x03 | 条码上、下方都打印 |
nBarcodeType
可以为以下列表中所列值之一。
Value | Meaning |
0x41 | UPC-A |
0x42 | UPC-C |
0x43 | JAN13(EAN13) |
0x44 | JAN8(EAN8) |
0x45 | CODE39 |
0x46 | ITF |
0x47 | CODEBAR |
0x48 | CODE93 |
0x49 | CODE 128 |
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
PAGE_DrawQRCode
画二维码
Syntax
bool PAGE_DrawQRCode(char *pszContent, intx, int y, int nQRCodeUnitWidth, int nVersion, int nEcLevel)
Parameters
pszContent
二维码文本
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
y
指定垂直方向的起始点位置离打印区域上边界的点数。(纵坐标)
nQRCodeUnitWidth
QR码单元宽度,范围[1,16]。
QR码单元宽度越大,QR码越大。
nVersion
QR码版本。0表示自动计算版本。
QR码版本越大,能编码的字符就越多,QR码也越大。
nEcLevel
QR码纠错等级。[1,4]
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
PAGE_DrawBitmap
画BMP位图
Syntax
boolPAGE_DrawBitmap(char *szFileName, int x, int y, int dstWidth, int dstHeight,int nBinaryAlgorithm)
Parameters
szFileName
位图文件路径(bmp格式)
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
y
指定垂直方向的起始点位置离打印区域上边界的点数。(纵坐标)
dwWidth
要打印的宽度
dwHeight
要打印的高度
nBinaryAlgorithm
二值化算法:
0 抖动算法(对彩色BMP位图效果较好)
1 平均阀值(对黑白BMP位图效果较好)
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
Pos Function
POS_TextOut
打印文本
Syntax
boolPOS_TextOut(wchar_t * pszString, int x, int nWidthScale, int nHeightScale, intnFontType, int nFontStyle, int nEncoding)
Parameters
pszString
要打印的内容。UNICODE编码字符串。
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
nWidthScale
指定宽度放大倍数 [0,7]
nHeightScale
指定高度放大倍数 [0,7]
nFontType
字体类型
0 标准字体
1 压缩字体
nFontStyle
指定字体风格,可以为下表中的一个或者若干个(相加即可)
Value | Meaning |
0x00 | 正常 |
0x08 | 加粗 |
0x80 | 1点粗的下划线 |
0x100 | 2点粗的下划线 |
0x200 | 倒置(只在行首有效) |
0x400 | 反显(黑底白字) |
0x1000 | 每个字符顺时针旋转 90 度 |
nEncoding
指定编码
Value | Meaning |
0 | GBK |
1 | UTF8 |
3 | BIG5 |
4 | SHIFT-JIS |
5 | EUC-KR |
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_TextOut并不立刻打印,需要调用POS_FeedXXX系列函数,才会把行缓冲区中的内容打印出来。
POS_SetBarcode
打印条码
Syntax
boolPOS_SetBarcode(char * pszBarcodeContent, int x, int nBarcodeUnitWidth, intnBarcodeHeight, int nHriFontType, int nHriFontPosition, int nBarcodeType)
Parameters
pszBarcodeContent
条码内容
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
nBarcodeUnitWidth
指定条码的基本元素宽度。
可以为以下列表中所列值(n)之一。
n | 单基本模块宽度 | 双基本模块宽度(离散型) | |
窄元素宽度 | 宽元素宽度 | ||
2 | 0.25mm | 0.25mm | 0.625mm |
3 | 0.375mm | 0.375mm | 1.0mm |
4 | 0.5mm | 0.5mm | 1.25mm |
5 | 0.625mm | 0.625mm | 1.625mm |
6 | 0.75mm | 0.75mm | 1.875mm |
nBarcodeHeight
条码高度
nHriFontType
指定 HRI(Human ReadableInterpretation)字符的字体类型。
可以为以下列表中所列值之一。
Value | Meaning |
0x00 | 标准ASCII |
0x01 | 压缩ASCII |
nHriFontPosition
指定HRI(Human ReadableInterpretation)字符的位置。
可以为以下列表中所列值之一。
Value | Meaning |
0x00 | 不打印 |
0x01 | 只在条码上方打印 |
0x02 | 只在条码下方打印 |
0x03 | 条码上、下方都打印 |
nBarcodeType
Value | Meaning |
0x41 | UPC-A |
0x42 | UPC-C |
0x43 | JAN13(EAN13) |
0x44 | JAN8(EAN8) |
0x45 | CODE39 |
0x46 | ITF |
0x47 | CODEBAR |
0x48 | CODE93 |
0x49 | CODE 128 |
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_SetQRCode
打印二维码(QR码)
Syntax
bool POS_SetQRCode(char * pszContent, intx, int nQRCodeUnitWidth, int nVersion, int nEcLevel)
Parameters
pszContent
二维码文本
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
nQRCodeUnitWidth
QR码单元宽度,范围[1,16]。
QR码单元宽度越大,QR码越大。
nVersion
QR码版本。0表示自动计算版本。
QR码版本越大,能编码的字符就越多,QR码也越大。
nEcLevel
QR码纠错等级。[1,4]
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_PrintPicture
打印BMP位图
Syntax
PRINTERLIBS_APIbool POS_PrintPicture(char * szFileName, int x, int dstw, int dsth, intnBinaryAlgorithm, int nCompressMethod)
Parameters
SzFileName
位图文件完整路径
x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)
支持左对齐,居中,右对齐
传入x见下表
x | 含义 |
-1 | 左对齐 |
-2 | 居中对齐 |
-3 | 右对齐 |
大于等于0 | 横坐标 |
dstw
要打印的宽度
dsth
要打印的高度
nBinaryAlgorithm
二值化算法:
0 抖动算法(对彩色BMP位图效果较好)
1 平均阀值(对黑白BMP位图效果较好)
nCompressMethod
图像压缩算法:
0 不压缩
1 压缩(减小数据量,对串口提速较明显,部分机型不支持)
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_SelfTest
打印自检页
Syntax
bool POS_SelfTest()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_FeedLine
Syntax
bool POS_FeedLine()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
打印机进纸一行
POS_FeedNLine
Syntax
bool POS_FeedNLine(int nLine)
Parameters
nLine
进纸行数
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
进纸nLine行
POS_FeedNDot
Syntax
bool POS_FeedNDot(int nDot)
Parameters
nDot
进纸点数
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
进纸nDot点。一般情况下,1mm有8个点。
POS_QueryStatus
查询打印机状态
Syntax
bool POS_QueryStatus(int type, char *status, unsigned int timeout)
Parameters
type
目前固定为1
status
打印机状态
该值目前无意义
timeout
超时毫秒时间
Return value
如果状态查询成功,返回true。否则,返回false
Remarks
该命令返回true表明打印机处于可打印状态。
POS_RTQueryStatus
实时查询打印机状态
Syntax
bool POS_RTQueryStatus(int type, char *status, unsigned int timeout)
Parameters
type
类型,目前可以为0,1,2,3,具体见下表
status
打印机状态
各type含义见下表:
type=0:打印机状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2 | 0 | 00 | 0 | 一个或两个钱箱打开 (没有钱箱的机器该位固定为零) |
1 | 04 | 4 | 两个钱箱都关闭 | |
3 | 0 | 00 | 0 | 联机 |
1 | 08 | 8 | 脱机 | |
4 | 1 | 10 | 16 | 固定为1 |
5,6 |
| -- | -- | 未定义 |
7 | 0 | 00 | 00 | 纸已撕走 |
1 | 80 | 96 | 纸未撕走 |
type=1:传送脱机状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2 | 0 | 00 | 0 | 上盖关 |
1 | 04 | 4 | 上盖开 | |
3 | 0 | 00 | 0 | 未按走纸键 |
1 | 08 | 8 | 按下走纸键 | |
4 | 1 | 10 | 16 | 固定为1 |
5 | 0 | 00 | 0 | 打印机不缺纸 |
1 | 20 | 32 | 打印机缺纸 | |
6 | 0 | 00 | 00 | 没有出错情况 |
1 | 40 | 64 | 有错误情况 | |
7 | 0 | 00 | 0 | 固定为0 |
type=2:传送错误状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2 |
| -- | -- | 未定义 |
3 | 0 | 00 | 0 | 切刀无错误 |
1 | 08 | 8 | 切刀有错误 | |
4 | 1 | 10 | 16 | 固定为1 |
5 | 0 | 00 | 0 | 无不可恢复错误 |
1 | 20 | 32 | 有不可恢复错误 | |
6 | 0 | 00 | 00 | 打印头温度和电压正常 |
1 | 40 | 64 | 打印头温度或电压超出范围 | |
7 | 0 | 00 | 0 | 固定为0 |
type=3:传送纸传感器状态
位 | 0/1 | 十六进制码 | 十进制码 | 功能 |
0 | 0 | 00 | 0 | 固定为0 |
1 | 1 | 02 | 2 | 固定为1 |
2,3 | 0 | 00 | 0 | 有纸 |
1 | 0C | 12 | 纸将近 | |
4 | 1 | 10 | 16 | 固定为1 |
5,6 | 0 | 00 | 0 | 有纸 |
1 | 60 | 96 | 纸尽 | |
7 | 0 | 00 | 0 | 固定为0 |
timeout
超时毫秒时间
Return value
如果状态查询成功,返回true。否则,返回false
Remarks
任何时候打印机收到该命令都会立刻返回。
POS_TicketSucceed
单据打印结果查询
Syntax
bool POS_TicketSucceed(int dwSendIndex,unsigned int timeout)
Parameters
dwSendIndex
单据索引
目前并无实际意义,可以固定填0
timeout
超时毫秒时间
Return value
单据打印完成,并且没有因为缺纸而中断,则返回true。
否则,没有查到状态,或返回因为缺纸或其他错误导致打印中断,则返回false。
Remarks
为了保证单据打印的可靠性,请每批次打印任务完成之后,调用一次该函数确认单据打印结果。
POS_SetMotionUnit
设置水平和垂直移动单位
Syntax
bool POS_SetMotionUnit(int nHorizontal, intnVertical)
Parameters
nHorizontal
水平移动单位
nVertical
垂直移动单位
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
当nHorizontal和nVertical都设置为200时,1点就是0.125mm。
POS_SetLineHeight
设置行高
Syntax
bool POS_SetLineHeight(int nDistance)
Parameters
nDistance
行高
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_SetRightSpacing
设置字符右边空白
Syntax
bool POS_SetRightSpacing(int nDistance)
Parameters
nDistance
字符右边空白
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_Reset
复位打印机。会清空设置。
Syntax
bool POS_Reset()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_KickOutDrawer
打开钱箱
Syntax
bool POS_KickOutDrawer(int nID, intnHighLevelTime, int nLowLevelTime);
Parameters
nID
钱箱编号
0 钱箱引脚2
1 钱箱引脚5
nHighLevelTime
钱箱脉冲高电位ms时间
nLowLevelTime
钱箱脉冲低电位ms时间
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_FeedAndCutPaper
进纸到切刀位置并切纸
Syntax
bool POS_FeedAndCutPaper
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_FullCutPaper
直接切纸(全切)
Syntax
bool POS_FullCutPaper
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_HalfCutPaper
直接切纸(半切)
Syntax
bool POS_HalfCutPaper
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
POS_Beep
蜂鸣器鸣叫
Syntax
bool POS_Beep(int nBeepCount, intnBeepMillis)
Parameters
nBeepCount
鸣叫次数
nBeepMillis
蜂鸣时间:100ms为单位
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
Label Function
LABEL_PageBegin
描述:指示一个 Page页面的开始,并设置 Page页的大小,参考点坐标和页面旋转角度。
Syntax
bool LABEL_PageBegin(intstartx, int starty, int width, int height, int rotate)
Parameters
页面起始点x坐标
starty
页面起始点y坐标
width
页面页宽
startx + width的范围为[1,384]。编写SDK的时候,该打印机一行的打印点数为384点。如果你不确定每行打印点数,请参考打印机规格书。一般来说有384,576,832这三种规格。
height
页面页高
starty + height的范围[1,936]。编写SDK的时候,限制是936,但是这个值并不确定,这和打印机的资源有关。即便如此,也不建议把页高设置过大。建议页宽和页高设置和标签纸匹配即可。
rotate
页面旋转。 rotate的取值范围为{0,1}。为0,页面不旋转打印,为1,页面旋转90度打印。
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_PageEnd
描述:指示一个 Page页面的结束。
Syntax
bool LABEL_PageEnd()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_PagePrint
描述:将 Page页上的内容打印到标签纸上。
Syntax
bool LABEL_PagePrint(int num)
Parameters
num
打印的次数,1-255。
Returnvalue
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_PageFeed
描述:走纸到标签缝隙处。
Syntax
bool LABEL_PageFeed()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_PageCalibrate
描述:校准标签纸
Syntax
bool LABEL_PageCalibrate()
Parameters
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawPlainText
描述:在 Page页面上指定位置绘制文本。只能单行打印。
Syntax
boolLABEL_DrawPlainText(int startx, int starty, int font, int style, const char*str)
Parameters
startx
定义文本起始位置 x坐标,取值范围:[0,Page_Width-1]
starty
定义文本起始位置 y坐标,取值范围:[0,Page_Height-1]
font
选择字体,有效值范围为{16, 24, 32, 48, 64, 80,96},当前打印机只可以使用24。
style
字符风格。
数据位 定义
0 加粗标志位: 置 1 字体加粗,清零则字体不加粗。
1 下划线标志位: 置 1文本带下划线,清零则无下划线。
2 反白标志位: 置 1文本反白(黑底白字),清零不反白。
3 删除线标志位: 置 1文本带删除线,清零则无删除线。
01 旋转 90°;
10 旋转 180°;
11 旋转 270°;
[11,8] 字体宽度放大倍数;
[15,12] 字体高度放大倍数;
str
字符串数据流
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawLine
描述:在 Page页指定两点间绘制一条直线段。
Syntax
bool LABEL_DrawLine(intstartx, int starty, int endx, int endy, int width, int color)
Parameters
startx
直线段起始点 x坐标值,取值范围:[0,Page_Width-1]。
starty
直线段起始点 y坐标值,取值范围:[0,Page_Height-1]。
直线段终止点 x坐标值,取值范围:[0, Page_Width-1]。
endy
直线段终止点 y坐标值,取值范围:[0,Page_Height-1]。
width
直线段线宽,取值范围:[1,Page_Height-1]。
color
直线段颜色,取值范围:{0, 1}。
当 Color 为 1 时,线段为黑色。
当 Color 为 0 时,线段为白色。
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawBox
描述:在 Page页指定位置绘制指定大小的矩形框。
Syntax
boolLABEL_DrawBox(int left, int top, int right, int bottom, int borderwidth, intbordercolor)
Parameters
left
矩形框左上角x坐标值,取值范围:[0, Page_Width-1]。
top
矩形框左上角y坐标值。取值范围:[0, Page_Height-1]。
right
矩形框右下角x坐标值。取值范围:[0, Page_Width-1]。
bottom
矩形框右下角 y坐标值。取值范围:[0, Page_Height-1]。
borderwidth
bordercolor
矩形框线颜色,曲直范围{0,1}。当 Color = 1时,绘制黑色矩形宽,Color = 0时,绘制白色矩形框。
Returnvalue
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawRectangel
描述:在 Page页指定位置绘制矩形块。
Syntax
boolLABEL_DrawRectangel(int left, int top, int right, int bottom, int color)
Parameters
left
矩形块左上角 x坐标值,取值范围:[0, Page_Width-1]。
top
矩形块左上角 y坐标值。取值范围:[0, Page_Height-1]。
right
矩形块右下角 x坐标值。取值范围:[0, Page_Width-1]。
bottom
矩形块右下角 y坐标值。取值范围:[0, Page_Height-1]。
color
矩形块颜色,取值范围:{0, 1}。当 Color为 1时,矩形块为黑色。当 Color为 0时,矩形块为白色。
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawBarcode
描述:在 Page页指定位置绘制一维条码。
Syntax
boolLABEL_DrawBarcode(int startx, int starty, int type, int height, int unitwidth,int rotate, const char *str)
Parameters
startx
条码左上角 x坐标值,取值范围:[0, Page_Width-1]。
starty
条码左上角 y坐标值,取值范围:[0, Page_Height-1]。
type
标识条码类型,取值范围:[0, 29]。各值定义如下:
type 类型 长度 条码值范围(十进制)
0 UPC-A 11 48-57
1 UPC-E 6 48-57
2 EAN13 12 48-57
3 EAN8 7 48-57
4 CODE39 1- 48-57,65-90,32,36,37,43,45,46,47
5 I25 1- 偶数 48-57
6 CODABAR 1- 48-57,65-68,36,43,45,46,47,58
7 CODE93 1-255 0-127
8 CODE128 2-255 0-127
9 CODE11
10 MSI
11 "128M",//可以根据数据切换编码模式-> !096- !105
12 "EAN128",// 自动切换编码模式
13 "25C",//25C Check use mod 10->奇数先在前面补0,10的倍数-[(奇数位的数字之和<从左至右)+(偶数位数字之和)*3]
14 "39C", //39碼的檢查碼必須搭配「檢查碼相對值對照表」,如表所示,將查出的相對值累加後再除以43,得到的餘數再查出相對的編碼字元,即為檢查碼字元。
15 "39",//Full ASCII 39 Code, 特殊字符用两个可表示的字来表示, 39C同样是包含Full ASCII,注意宽窄比处理
16 "EAN13+2",// 附加码与主码间隔 7-12单位,起始为 1011间隔为 01,(_0*10+_1) Mod 4-> 0--AA 1--AB 2--BA 3--BB
17 "EAN13+5",//附加码部分同上,模式((_0+_2+_4)*3+(_1+_3)*9) mod 10->"bbaaa","babaa","baaba", "baaab", "abbaa","aabba", "aaabb", "ababa","abaab","aabab
18 "EAN8+2",// 同 EAN13+2
19 "EAN8+5",// 同 EAN13+5
20 "POST", // 详见规格说明,是高低条码,不是宽窄条码
21 "UPCA+2",// 附加码见 EAN
22 "UPCA+5", // 附加码见 EAN
23 "UPCE+2",// 附加码见 EAN
24 "UPCE+5",//附加码见 EAN
25 "CPOST",// 测试不打印。。。
26 "MSIC",//将检查码作为数据再计算一次检查码
27 "PLESSEY",// 测试不打印。。。
28 "ITF14",// 25C 变种,第一个数前补0,检查码计算时需扣除最后一个数,但仍填充为最尾端
29 "EAN14"
height
定义条码高度。
unitwidth
定义条码码宽。取值范围:[1, 4]。
各值定义如下:
Width取值多级条码单位宽度(mm)二进制条码窄线条宽度二进制条码宽线条宽度
1 0.125 0.125 0.25
2 0.25 0.25 0.50
3 0.375 0.375 0.75
4 0.50 0.50 1.0
rotate
表示条码旋转角度。取值范围:[0, 3]。各值定义如下:
Rotate取值 定义
0 条码不旋转绘制。
1 条码旋转90°绘制。
2 条码旋转 180°绘制。
3 条码旋转 270°绘制。
str
文本字符数据流
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawQRCode
描述:在 Page页指定位置绘制 QRCode码。
Syntax
bool LABEL_DrawQRCode(intstartx, int starty, int version, int ecc, int unitwidth, int rotate, const char*str)
Parameters
startx
QRCode 码左上角 x坐标值,取值范围:[0,Page_Width-1]。
starty
QRCode 码左上角 y坐标值,取值范围:[0, Page_Height-1]。
version
指定字符版本。取值范围:[0,20]。当 version为 0时,打印机根据字符串长度自动计算版本号。
ecc
指定纠错等级。取值范围:[1, 4]。各值定义如下:
ECC 纠错等级
1 L:7%,低纠错,数据多。
2 M:15%,中纠错
3 Q:优化纠错
4 H:30%,最高纠错,数据少。
unitwidth
QRCode 码码块,取值范围:[1, 4]。各值定义与一维条码指令输入参数UniWidth相同。
rotate
QRCode 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数Rotate相同。
str
QRCode 文本字符数据流
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawPDF417
描述:在 Page页指定位置绘制 PDF417条码。
Syntax
boolLABEL_DrawPDF417(int startx, int starty, int colnum, int lwratio, int ecc, intunitwidth, int rotate, const char *str)
Parameters
startx
PDF417 码左上角 x坐标值,取值范围:[0,Page_Width-1]。
starty
PDF417 码左上角 y坐标值,取值范围:[0, Page_Height-1]。
colnum
ColNum 为列数,表述每行容纳多少码字。一个码字为 17*UnitWidth个点。行数由打印机自动产生,行数范围限定为3~90。ColNum的取值范围:[1,30]。
lwratio
宽高比。取值范围:[3,5]。
ecc
纠错等级,取值范围:[0.8]。
ecc取值纠错码数可存资料量(字节)
0 2 1108
1 4 1106
2 8 1101
3 16 1092
4 32 1072
5 64 1024
6 128 957
7 256 804
8 512 496
unitwidth
PDF417 码码块,取值范围:[1, 3]。各值定义与一维条码指令输入参数 UniWidth相同。
PDF417 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数 Rotate相同。
str
PDF417 文本字符数据流。
Returnvalue
如果指令写入成功,返回true。否则,返回false
LABEL_DrawBitmap
描述:在 Page页指定位置绘制位图。
Syntax
boolLABEL_DrawImage(int startx, int starty, int width, int height, int style, constbool *img)
Parameters
startx
位图左上角 x坐标值,取值范围:[0,Page_Width]。
位图左上角 y坐标值,取值范围:[0,Page_Height]。
width
位图的像素宽度。
height
位图的像素高度。
style
位图打印特效,各位定义如下:
位 定义
0 反白标志位,置 1位图反白打印,清零正常打印。
[2:1] 旋转标志位:
00旋转 0°;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°
[7:3] 保留。
[11:8] 位图宽度放大倍数。
[12:15]位图高度放大倍数。
img
位图的点阵数据。
Returnvalue
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawBitmap
描述:在 Page页指定位置绘制位图。
Syntax
bool LABEL_DrawBitmap(intstartx, int starty, int dstw, int dsth, int style, const char *pszFile, intnBinaryAlgorithm)
Parameters
startx
位图左上角 x坐标值,取值范围:[0, Page_Width]。
starty
位图左上角 y坐标值,取值范围:[0, Page_Height]。
dstw
要打印的像素宽度。
dsth
要打印的像素高度。
style
同上
pszFile
要打印的位图文件
nBinaryAlgorithm
二值化算法,彩色图片无法直接打印,需要二值化为黑白图像才可以打印。
0 使用抖动算法
1 使用平均阀值算法
Return value
如果指令写入成功,返回true。否则,返回false
Remarks