CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170710
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-A 1148-57
1 UPC-E 6 48-57
2 EAN13 12 48-57
3 EAN8 7 48-57
4 CODE391- 48-57,65-90,32,36,37,43,45,46,47
5 I25 1-偶数 48-57
6 CODABAR1- 48-57,65-68,36,43,45,46,47,58
7 CODE93 1-255 0-127
8CODE128 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(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 - Windows平台开发包打印示例程序及接口说明文档 - 20170710相关推荐
- CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170531
CaysnPrinter打印示例程序:CaysnPrinter打印机开发包示例程序_20170531 CaysnPrinter打印示例程序C#版:CaysnPrinter打印机开发包示例程序_Samp ...
- Caysn打印机IOS平台打印开发包及示例程序_20170610
打印机开发包,接口说明文档,打印示例程序:Caysn打印机IOS开发包.文档.示例程序_20170610 系统要求:IOS8 CPU架构:armv7 armv7s arm64 说明文档:(压缩包里有附 ...
- Caysn打印机IOS平台打印示例及接口说明文档 - 20161008
打印示例下载地址: Caysn打印机IOS打印示例程序 - sample_20161008 接口说明文档下载地址: Caysn打印机IOS开发包接口说明文档 - PrinterLibs For IOS ...
- Caysn打印机IOS平台打印开发包、接口说明文档及示例程序_20170717
打印机开发包,接口说明文档,打印示例程序下载地址:Caysn打印机IOS开发包.接口说明文档.打印示例程序_20170717 Framework版本要求:IOS8 Framework架构:armv7 ...
- CaysnPrinter安卓平台开发包接口说明文档及打印示例程序 - 20160926
接口说明文档下载地址: CaysnPrinter安卓平台开发包接口说明文档 - PrinterLibs For Android_20160926 打印示例程序下载地址: Caysn打印机安卓打印示例代 ...
- CaysnPrinter开发包接口说明文档及打印示例程序 - 20160715
接口说明文档下载地址:CaysnPrinter开发包接口说明文档 - PrinterLibs For Android_20160715 打印示例程序下载地址:Caysn打印机安卓打印示例代码 - Sa ...
- Caysn打印机安卓平台开发包接口说明文档及打印示例程序_20170609
Caysn打印机打印开发包接口说明文档中文版:PrinterLibs_For_Android_zh_CN_20170630 Caysn打印机打印开发包接口说明文档英文版:PrinterLibs_For ...
- python只能运行在windows平台上吗_在Windows平台上编写的Python程序无法在Unix平台运行。...
问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 Because plants cannot move or talk, most people believe ...
- 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )
文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...
- Windows SDK编程之一 窗口示例程序
/*Win32应用程序框架主要由"初始化窗口类","窗口注册类","窗口的创建"以"窗口消息函数"等组成*/ #incl ...
最新文章
- Java成员变量与成员方法
- Sqlite的多表连接更新
- [再寄小读者之数学篇](2014-11-19 等差数列的部分和)
- 最长公共子序列Java代码实现
- 乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
- 用户操作拦截并作日志记录--自定义注解+AOP拦截
- java中springdi_java中spring入门
- ql的python学习之路-day9
- 汇编语言---子程序设计举例(两组数据相加)
- mariadb忘记密码修改密码
- 黑马程序员SpringBoot2全套教程学习笔记
- 数学知识整理:布朗运动与伊藤引理 (Ito‘s lemma)
- 电脑桌面的计算机图双击打不开,win10双击电脑图标打不开必须右键打开
- Jetson nano——控制风扇旋转速度的方法
- android+扁平+png,[3.28更新]更好看的扁平化主题 —Flat+ 超全图标
- Java编程那些事儿69——抽象类和接口(二)
- 微信小程序单行缩进与多行缩进
- Android 项目必备(四十三)-->Android 开发者的 new 电脑
- TensorFlow模型保存pb或ckpt
- IM即时通讯开发群聊消息的已读回执功能该怎么实现?