CaysnPrinter
来源:互联网 发布:博实股份人工智能 编辑:程序博客网 时间:2024/05/16 11:11
CaysnPrinter打印示例程序:CaysnPrinter打印机开发包示例程序_Sample_20170710
CaysnPrinter打印示例程序C#版:CaysnPrinter打印机开发包示例程序_SampleCSharp_20170710
CaysnPrinter打印开发包接口说明文档中文版:PrinterLibs_For_Windows_zh_CN_20170710
CaysnPrinter打印开发包接口说明文档英文版:PrinterLibs_For_Windows_en_US_20170710
一 概述
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, int dwBaudrate, 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, unsigned short 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-Serial Comm Port,则说明这是USB虚拟串口,需要使用Port_OpenCom。
Port_OpenLpt
Syntax
bool Port_OpenLpt(char * pName)
Parameters
pName
端口名称。
例如:LPT1,LPT2,LPT3...
Return value
如果打开成功,返回true。否则,返回false
Remarks
并口只有单向通讯,只可写不可读。
一切查询状态的函数,对并口来说均是无效的。
Port_OpenPrn
Syntax
bool Port_OpenPrn(char * pName)
Parameters
pName
打印机名称。
例如:POS58 Printer
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)
{
int cbNeeded = 0;
int cnReturned = 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
Port_EnumPrn
枚举打印机
void Port_EnumPrn(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(char *pszString, int x, int y, int nWidthScale, int nHeightScale, int nFontType, int nFontStyle)
Parameters
pszString
要打印的内容
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_DrawUTF8String
画文本
Syntax
bool PAGE_DrawUTF8String(wchar_t *pszString, int x, int y, int nWidthScale, int nHeightScale, int nFontType, int nFontStyle)
Parameters
pszString
要打印的内容,UNICODE字符串。
x
y
nWidthScale
nHeightScale
nFontType
nFontStyle
同PAGE_DrawString
Return value
同PAGE_DrawString
Remarks
同PAGE_DrawString
PAGE_DrawRect
画矩形
Syntax
bool PAGE_DrawRect(int x, int y, int nWidth, 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 Readable Interpretation)字符的字体类型。
可以为以下列表中所列值之一。
Value
Meaning
0x00
标准ASCII
0x01
压缩ASCII
nHriFontPosition
指定HRI(Human Readable Interpretation)字符的位置。
可以为以下列表中所列值之一。
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, int x, 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
bool PAGE_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
bool POS_TextOut(wchar_t * pszString, int x, int nWidthScale, int nHeightScale, int nFontType, 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
bool POS_SetBarcode(char * pszBarcodeContent, int x, int nBarcodeUnitWidth, int nBarcodeHeight, 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 Readable Interpretation)字符的字体类型。
可以为以下列表中所列值之一。
Value
Meaning
0x00
标准ASCII
0x01
压缩ASCII
nHriFontPosition
指定HRI(Human Readable Interpretation)字符的位置。
可以为以下列表中所列值之一。
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, int x, 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_API bool POS_PrintPicture(char * szFileName, int x, int dstw, int dsth, int nBinaryAlgorithm, 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, int nVertical)
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, int nHighLevelTime, 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, int nBeepMillis)
Parameters
nBeepCount
鸣叫次数
nBeepMillis
蜂鸣时间:100ms为单位
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
Label Function
LABEL_PageBegin
描述: 指示一个 Page 页面的开始,并设置Page 页的大小,参考点坐标和页面旋转角度。
Syntax
bool LABEL_PageBegin(int startx, int starty, int width, int height, int rotate)
Parameters
startx
页面起始点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。
Return value
如果指令写入成功,返回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
bool LABEL_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文本带删除线,清零则无删除线。
[5,4] 旋转标志位:00旋转 0° ;
01 旋转 90°;
10 旋转 180°;
11 旋转 270°;
[11,8] 字体宽度放大倍数;
[15,12] 字体高度放大倍数;
str
字符串数据流
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawLine
描述: 在 Page 页指定两点间绘制一条直线段。
Syntax
bool LABEL_DrawLine(int startx, int starty, int endx, int endy, int width, int color)
Parameters
startx
直线段起始点 x坐标值,取值范围:[0, Page_Width-1]。
starty
直线段起始点 y坐标值,取值范围:[0,Page_Height-1]。
endx
直线段终止点 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
bool LABEL_DrawBox(int left, int top, int right, int bottom, int borderwidth, int bordercolor)
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时,绘制白色矩形框。
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawRectangel
描述: 在 Page 页指定位置绘制矩形块。
Syntax
bool LABEL_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
bool LABEL_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-A1148-57
1 UPC-E6 48-57
2 EAN1312 48-57
3 EAN87 48-57
4 CODE391- 48-57,65-90,32,36,37,43,45,46,47
5 I251-偶数 48-57
6 CODABAR1- 48-57,65-68,36,43,45,46,47,58
7 CODE931-2550-127
8CODE1282-2550-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(int startx, 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%,低纠错,数据多。
2M: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
bool LABEL_DrawPDF417(int startx, int starty, int colnum, int lwratio, int ecc, int unitwidth, 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 相同。
rotate
PDF417 码旋转角度,取值范围:[0, 3]。各值定义与一维条码指令输入参数Rotate 相同。
str
PDF417 文本字符数据流。
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawBitmap
描述: 在 Page 页指定位置绘制位图。
Syntax
bool LABEL_DrawImage(int startx, int starty, int width, int height, int style, const bool *img)
Parameters
startx
位图左上角 x坐标值,取值范围:[0, Page_Width]。
starty
位图左上角 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
位图的点阵数据。
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
LABEL_DrawBitmap
描述: 在 Page 页指定位置绘制位图。
Syntax
bool LABEL_DrawBitmap(int startx, int starty, int dstw, int dsth, int style, const char *pszFile, int nBinaryAlgorithm)
Parameters
startx
位图左上角 x坐标值,取值范围:[0, Page_Width]。
starty
位图左上角 y坐标值,取值范围:[0, Page_Height]。
dstw
要打印的像素宽度。
dsth
要打印的像素高度。
style
同上
pszFile
要打印的位图文件
nBinaryAlgorithm
二值化算法,彩色图片无法直接打印,需要二值化为黑白图像才可以打印。
0 使用抖动算法
1 使用平均阀值算法
Return value
如果指令写入成功,返回true。否则,返回false
Remarks
- CaysnPrinter
- CaysnPrinter
- CaysnPrinter打印示例 - Sample1 For Android
- CaysnPrinter打印示例 - Sample For Windows
- CaysnPrinter开发包接口说明文档 - CaysnPrinter示例程序Sample1 - 20160623 - For Android
- CaysnPrinter开发包接口说明文档 - PrinterLibs For Android
- CaysnPrinter开发包接口说明文档 - PrinterLibs For Windows
- CaysnPrinter 云打印机MQTT上层通讯协议V1.1_20170624
- CaysnPrinter开发包接口说明文档及打印示例程序 - 20160715
- CaysnPrinter开发包接口说明文档及示例程序 - CAYSN IOS SDK_20160906
- CaysnPrinter安卓平台开发包接口说明文档及打印示例程序 - 20160926
- CaysnPrinter Windows平台开发包接口说明文档及打印示例程序 - PrinterLibs For Windows_20160927
- CaysnPrinter - Linux平台开发包接口说明文档及打印示例程序 - 20161007
- CaysnPrinter安卓平台开发包接口说明文档及打印示例程序
- poi.jar包学习笔记
- 处理乱码及通过Struts标签显示数据
- 173链表插入排序
- 递归相加
- hdu1022Train Problem I(栈的简单应用)
- CaysnPrinter
- fopen,fseek,fread,fclose
- javascript
- java.io.File
- 99乘法表
- 表格和其他的一些学习
- BZOJ 2140 稳定婚姻 Tarjan 强连通分量
- 菜鸟程序员的成长之路
- 1154. 【GDOI2003】购物