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

本文档详细介绍了CaysnPrinter在Windows平台的打印开发包,包括Port、Page、Pos和Label四类函数,支持串口、USB口、并口、网口和打印机名称的打印,以及页模式、ESC/POS指令、标签指令的使用,附带C#和C++示例程序和中文英文接口文档。
摘要由CSDN通过智能技术生成

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++编写的DLLDLL导出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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值