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相关推荐

  1. CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170531

    CaysnPrinter打印示例程序:CaysnPrinter打印机开发包示例程序_20170531 CaysnPrinter打印示例程序C#版:CaysnPrinter打印机开发包示例程序_Samp ...

  2. Caysn打印机IOS平台打印开发包及示例程序_20170610

    打印机开发包,接口说明文档,打印示例程序:Caysn打印机IOS开发包.文档.示例程序_20170610 系统要求:IOS8 CPU架构:armv7 armv7s arm64 说明文档:(压缩包里有附 ...

  3. Caysn打印机IOS平台打印示例及接口说明文档 - 20161008

    打印示例下载地址: Caysn打印机IOS打印示例程序 - sample_20161008 接口说明文档下载地址: Caysn打印机IOS开发包接口说明文档 - PrinterLibs For IOS ...

  4. Caysn打印机IOS平台打印开发包、接口说明文档及示例程序_20170717

    打印机开发包,接口说明文档,打印示例程序下载地址:Caysn打印机IOS开发包.接口说明文档.打印示例程序_20170717 Framework版本要求:IOS8  Framework架构:armv7 ...

  5. CaysnPrinter安卓平台开发包接口说明文档及打印示例程序 - 20160926

    接口说明文档下载地址: CaysnPrinter安卓平台开发包接口说明文档 - PrinterLibs For Android_20160926 打印示例程序下载地址: Caysn打印机安卓打印示例代 ...

  6. CaysnPrinter开发包接口说明文档及打印示例程序 - 20160715

    接口说明文档下载地址:CaysnPrinter开发包接口说明文档 - PrinterLibs For Android_20160715 打印示例程序下载地址:Caysn打印机安卓打印示例代码 - Sa ...

  7. Caysn打印机安卓平台开发包接口说明文档及打印示例程序_20170609

    Caysn打印机打印开发包接口说明文档中文版:PrinterLibs_For_Android_zh_CN_20170630 Caysn打印机打印开发包接口说明文档英文版:PrinterLibs_For ...

  8. python只能运行在windows平台上吗_在Windows平台上编写的Python程序无法在Unix平台运行。...

    问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 Because plants cannot move or talk, most people believe ...

  9. 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )

    文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...

  10. Windows SDK编程之一 窗口示例程序

    /*Win32应用程序框架主要由"初始化窗口类","窗口注册类","窗口的创建"以"窗口消息函数"等组成*/ #incl ...

最新文章

  1. Java成员变量与成员方法
  2. Sqlite的多表连接更新
  3. [再寄小读者之数学篇](2014-11-19 等差数列的部分和)
  4. 最长公共子序列Java代码实现
  5. 乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
  6. 用户操作拦截并作日志记录--自定义注解+AOP拦截
  7. java中springdi_java中spring入门
  8. ql的python学习之路-day9
  9. 汇编语言---子程序设计举例(两组数据相加)
  10. mariadb忘记密码修改密码
  11. 黑马程序员SpringBoot2全套教程学习笔记
  12. 数学知识整理:布朗运动与伊藤引理 (Ito‘s lemma)
  13. 电脑桌面的计算机图双击打不开,win10双击电脑图标打不开必须右键打开
  14. Jetson nano——控制风扇旋转速度的方法
  15. android+扁平+png,[3.28更新]更好看的扁平化主题 —Flat+ 超全图标
  16. Java编程那些事儿69——抽象类和接口(二)
  17. 微信小程序单行缩进与多行缩进
  18. Android 项目必备(四十三)-->Android 开发者的 new 电脑
  19. TensorFlow模型保存pb或ckpt
  20. IM即时通讯开发群聊消息的已读回执功能该怎么实现?

热门文章

  1. ImageJ(Fiji)安装
  2. 知行功夫为本,找对心中的英雄,过好平凡的生活
  3. Unity+JetBrainsRider2020+EmmyLua调试Lua(XLua)
  4. 对称密钥算法与非对称密钥算法
  5. 无法打开包括文件: “SDKDDKVer.h”问题解决办法
  6. 关于SQL2005安装后更改计算机名后…
  7. 交通规划软件功能分析
  8. MVG基站天线测量系统获盛路通信选用
  9. 大型网站技术架构 读书笔记2 核心架构要素
  10. 《整理的艺术》读书笔记