您的位置:首页 > 运维架构 > Linux

CaysnPrinter - Linux平台开发包接口说明文档及打印示例程序 - 20161007

2016-10-07 17:31 573 查看
示例程序下载地址:

Sample2:Caysn打印机Linux打印示例程序 - Sample2_20161007

 

接口说明文档:

 

一 概述

 

1 PrinterLibs是在Linux平台用C++编写的静态库,导出C风格的函数。

 

2 PrinterLibs函数有以下几类

A PORT_XXX

以PORT开头的函数,主要是打开端口,关闭端口,写入端口。

支持通过串口,并口,USB口,网口进行打印。

 

备注:Port_SetPort:该函数可以指定POS_XXX系列函数所使用的通讯端口。

 

B POS_XXX

以POS开头的函数,主要是封装了ESC/POS指令,可以控制打印机打印。

① 进纸系列函数可以控制打印机进纸

② 设置系列函数可以设置打印的格式等

③ 打印系列函数可以打印文本,条码,QR码,图片等

④ 查询系列函数可以查询打印机状态

⑤ 其他函数可以控制钱箱、切刀、蜂鸣器等

 

 

 

 

 

 

 

 

 

二 函数说明

 

PORT Function

 

PORT_Open

描述:打开端口

 

Syntax

bool PORT_Open(int type, const char *pszName, int para)

 

Parameters

type

端口类型。

例如:

0x1 串口

0x2 网口

0x4 USB口

0x8 并口

 

pszName

端口名称

串口名称举例:/dev/ttyS0 /dev/ttyUSB0等

网口名称举例:192.168.1.87

USB口举例:/dev/usb/lp0

并口举例:/dev/lp0

 

para

参数

对串口来说,此处填波特率。如115200。

对网口来说,此处填端口号。固定9100端口。

对USB和并口来说,此处参数不使用。

 

Return value

如果打开成功,返回TRUE。否则,返回FALSE

 

Remarks

如果打开的端口是并口,则无法使用查询系列函数,因为我们的并口是单向通讯的。

 

PORT_Close

描述:关闭端口

 

 

Syntax

void PORT_Close()

 

Parameters

 

 

Return value

 

 

Remarks

关闭端口

 

 

PORT_Write

描述:向端口写数据

 

 

Syntax

int PORT_Write(const char * buffer, int count, int timeout)

 

Parameters

buffer

要写入的数据

 

count

要写入的字节数

 

timeout

超时时间

 

Return value

如果写入成功,返回写入的字节数。如果失败,返回-1。

 

Remarks

使用该函数可以直接发送命令给打印机,例如写入”\x12\x54”,打印机会打印一张自测页。

 

 

 

 

 

Pos Function

POS_PrintText

 

描述:打印文本

 

Syntax

void POS_PrintText(const char *pszString,int x, int nWidthTimes, int nHeightTimes, int nFontType, int nFontStyle)

 

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 度

 

 

 

 

Return value

 

 

Remarks

POS_PrintText并不立刻打印,需要调用POS_FeedXXX系列函数,才会把行缓冲区中的内容打印出来。

同一行不支持多种对齐方式。

POS_PrintBarcode

 

打印条码

 

Syntax

void POS_PrintBarcode(const char *pszString, int x, int nType, int nUnitWidth, int nHeight, int nHriFontType, int nHriFontPosition)

 

Parameters

pszString

条码内容

 

x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)

支持左对齐,居中,右对齐

传入x见下表

 

x

含义

-1

左对齐

-2

居中对齐

-3

右对齐

大于等于0

横坐标

 

 

nType

可以为以下列表中所列值之一。

 

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

 

 

nUnitWidth

指定条码的基本元素宽度。
可以为以下列表中所列值(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

 

 

nHeight

条码高度

8点即1mm,填入80即可打印高度为1CM的条码。

 

nHriFontType

指定 HRI(Human Readable Interpretation)字符的字体类型。
可以为以下列表中所列值之一。

 

Value

Meaning

0x00

标准ASCII

0x01

压缩ASCII

 

 

nHriFontPosition

指定HRI(Human Readable Interpretation)字符的位置。
可以为以下列表中所列值之一。

 

Value

Meaning

0x00

不打印

0x01

只在条码上方打印

0x02

只在条码下方打印

0x03

条码上、下方都打印

 

 

 

Return value

 

 

Remarks

部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。

 

POS_PrintQRCode

 

打印二维码(QR码)

 

Syntax

void POS_PrintQRcode(const char *pszString, int x, int nUnitWidth, int nVersion, int nECCLevel)

 

Parameters

pszString

二维码文本

 

x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)

支持左对齐,居中,右对齐

传入x见下表

 

x

含义

-1

左对齐

-2

居中对齐

-3

右对齐

大于等于0

横坐标

 

 

 

nUnitWidth

QR码单元宽度,范围[1,16]。

QR码单元宽度越大,QR码越大。

 

nVersion

QR码版本。0表示自动计算版本。

QR码版本越大,能编码的字符就越多,QR码也越大。

 

nECCLevel

QR码纠错等级。[1,4]

 

Return value

 

 

Remarks

部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。

 

POS_PrintBitmap

 

打印BMP位图

 

Syntax

void POS_PrintBitmap(const char *pszFile, int x, int nBinaryAlgorithm, int nCompressMethod)

 

Parameters

pszFile

位图文件路径

 

x
指定水平方向的起始点位置离打印区域左边界的点数。(横坐标)

支持左对齐,居中,右对齐

传入x见下表

 

x

含义

-1

左对齐

-2

居中对齐

-3

右对齐

大于等于0

横坐标

 

 

nBinaryAlgorithm

二值化算法

0
使用抖动算法,对彩色图片有较好的效果。

1
使用平均阀值算法,对文本类图片有较好的效果

 

nCompressMethod

压缩算法

0
不使用压缩算法

1
使用压缩算法

 

Return value

 

 

Remarks

部分机型不支持指定起始位置,请使用左对齐,居中对齐,右对齐进行排版布局。

 

POS_FeedLine

 

 

 

Syntax

BOOL POS_FeedLine()

 

Parameters

 

Return value

 

 

Remarks

打印机进纸一行

 

 

 

POS_Reset

 

复位打印机。会清空设置。

 

Syntax

void POS_Reset()

 

Parameters

 

Return value

 

 

Remarks

 

 

POS_SetMotionUnit

 

设置水平和垂直移动单位

 

Syntax

void POS_SetMotionUnit(int nHorizontalMU, int nVerticalMU)

 

Parameters

nHorizontalMU

水平移动单位

 

nVertnVerticalMUical

垂直移动单位

 

Return value

 

 

Remarks

当nHorizontal和nVertical都设置为200时,1点就是0.125mm。

 

 

POS_SetRightSpacing

 

设置字符右边空白

 

Syntax

void POS_SetRightSpacing(int nDistance)

 

Parameters

nDistance

字符右边空白

 

Return value

 

 

Remarks

 

POS_SetLineHeight

 

设置行高

 

Syntax

void POS_SetLineHeight(int nHeight)

 

Parameters

nHeight

行高

 

Return value

 

 

Remarks

 



POS_SetPrintSpeed

设置打印速度注:如果打印速度大于发送速度,打印会有卡顿感。

 

Syntax

void POS_SetPrintSpeed(int nSpeed)

 

Parameters

nSpeed

打印速度(mm/s)

 

Return value

 

Remarks

将打印速度设置为数据发送速度,可以是打印效果达到最好。

可以通过打印一张单据,测量单据的长度和所用时间,用长度/时间,即可。

POS_CutPaper

切纸

 

Syntax

void POS_CutPaper()

 

Parameters

 

Return value

 

Remarks

只对带切刀的机器有效

POS_Beep

蜂鸣器鸣叫

 

Syntax

void POS_Beep(int nBeepCount, int nBeepMillis)

 

Parameters

nBeepCount

鸣叫次数

 

nBeepMillis

每次鸣叫的时间 = 100 * nBeemMillisms

 

Return value

 

Remarks

POS_KickDrawer

打开钱箱

 

Syntax

void POS_KickDrawer(int nDrawerIndex,int nPulseTime)

 

Parameters

nDrawerIndex

0表示:脉冲发送到钱箱输出引脚2  

1表示:脉冲发送到钱箱输出引脚5

 

nPulseTime

脉冲时间

高电平时间:nPulseTime*2ms

低电平时间:nPulseTime*2ms

 

Return value

 

Remarks

POS_QueryStatus

查询状态

打印机忙时,该命令会一直阻塞

返回的状态保存在status中

 

Syntax

bool POS_QueryStatus(int type, char * status, int timeout, int MaxRetry)

 

Parameters

 

type

当前固定为1

 

status

status
该值目前无意义

 

timeout

单次查询状态的超时毫秒时间

 

MaxRetry

失败重试次数

 

Return value

返回true,表明打印机状态OK。否则,打印机未联机或打印机正忙。

 

Remarks

 

POS_RTQueryStatus

实时状态查询

无论打印机处于何种状态,只要打印机收到该命令就立刻回送状态

返回的状态保存在status中

 

Syntax

bool POS_RTQueryStatus(int type, char * status, int timeout, int MaxRetry)

 

Parameters

type

type可取值[1,4]

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,6

 

--

--

未定义

7

0

00

00

纸已撕走

1

80

96

纸未撕走

 

 

2:传送脱机状态

 



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

 

 

3:传送错误状态

 



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

 

 

4:传送纸传感器状态

 



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

 

 

status

status 对应含义见上表

timeout

单次查询状态的超时毫秒时间

MaxRetry

失败重试次数

 

Return value

返回true,表明打印机通讯正常,查询的状态保存在status中。

 

Remarks

 

POS_TicketSucceed

发送单据查询命令

 

Syntax

bool POS_TicketSucceed(int dwSendIndex, int timeout)

 

Parameters

dwSendIndex

单据索引:

可以从1开始依次递增,目前并无实际意义

 

timeout

等待单据打印完成的超时ms时间

 

Return value

单据打印完成,并且没有因为缺纸而中断,则返回true。

否则,没有查到状态,或返回因为缺纸或其他错误导致打印中断,则返回false。

 

Remarks

为了保证单据打印的可靠性,请每批次打印任务完成之后,调用一次该函数确认单据打印结果。

 

 

 

POS_CheckAndQuery

 

检查打印机

 

Syntax

bool POS_CheckAndQuery(bool * pResult, int timeout)

 

Parameters

pResult

pResult保存检查结果,true表示打印机正确,false表示打印机未知。

 

timeout

超时毫秒时间

 

Return value

返回true,表明检查完毕,检查结果保存在pResult中,返回false,表明检查失败。

 

Remarks

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: