帮助系统简介

BPLADLL帮助

--------------------------------------------------------------------------------

BPLADLL由山东新北洋信息技术股份有限公司开发，以动态库的形式提供BPLA指令集打印机的用户进行二次开发。

［发布说明］

发布名称：BPLADLL V2.03 ------------------------------ BPLA动态库发布包
内容包括：
BPLA动态库文件： ------------------------- 动态库文件包
bpladll.dll ---------------- BPLA动态库文件
ByUSBInt.dll ---------------- USB动态库文件
BPLADLL帮助.chm ---------------- 动态库帮助文档
delphibplademo.exe ---------------- delphi演示例程可执行文件
dlldemo.exe ---------------- VC演示例程可执行文件
vbbplademo.exe ---------------- VB演示例程可执行文件
VNetDemo.exe ---------------- C#演示例程可执行文件
arrow.bmp ---------------- 例程调用箭头图片
freeway.bmp ---------------- 例程调用公路样张图片
WaterWay.bmp ---------------- 例程调用水运样张图片
BPLADLL演示程序： ------------------------- 动态库演示例程文件包
VC调用BPLADLL演示程序 ---------------- VC调用bpladll动态库例程源码包
VB调用BPLADLL演示程序 ---------------- VB调用bpladll动态库例程源码包
C#调用BPLADLL演示程序 ---------------- C#调用bpladll动态库例程源码包
Delphi调用BPLADLL演示程序---------------- Delphi调用bpladll动态库例程源码包
lptdriver ------------------------- 并口驱动程序安装包
备注说明：
BPLADLL并口控制函数通过调用并口驱动实现，所以并口驱动随动态库一起发布；USB设备驱动及打印机驱动程序由于打印机不同，相应的USB设备驱动及打印机驱动会存在差别，所以USB设备驱动及打印机驱动程序不随动态库一起发布。

［主要指标］
支持系统：Windows 98、Windows Me、Windows NT、Windows 2000、Windows XP操作系统。
支持设备：山东新北洋制造的支持BPLA指令集的打印机，包括：BTP-6200I、BTP-2100E、BTP-2300T、BTP-1000PT、BTP-2000S、BTP-L3系列、BTP-L740，等等。
支持端口：串口、并口、USB口、驱动程序。
备注：Windows NT系统不支持USB通讯； 动态库由于支持驱动程序打印，因此可以支持网络打印。

［函数列表］

序号 | 分类 | 函数名称 | 功能描述 | 常用程度
1 | 端口控制 | BPLA_OpenCom | 打开并配置、检测串口 | 常用
2 |  | BPLA_OpenComEx | 打开串口,不进行连接检查 | 常用
3 |  | BPLA_CloseCom | 关闭串口 | 常用
4 |  | BPLA_OpenLpt | 打开并口 | 常用
5 |  | BPLA_CloseLpt | 关闭并口 | 常用
6 |  | BPLA_OpenUsb | 打开USB接口，适用于仅链接一台USB打印机 | 常用
7 |  | BPLA_OpenUsbByID | 通过打开USB接口 | 常用
8 |  | BPLA_CloseUsb | 关闭USB接口 | 常用
9 |  | BPLA_SetTimeOut | 设置串口、并口和USB口超时 | 常用
10 | 驱动控制 | BPLA_OpenPrinterDriver | 打开驱动程序 | 常用
11 |  | BPLA_ClosePrinterDriver | 关闭驱动程序 | 常用
12 |  | BPLA_StartDoc | 开启打印作业 | 常用
13 |  | BPLA_EndDoc | 关闭打印作业 | 常用
14 | 数据收发 | BPLA_SendCommand | 发送指定的指令 | 不常用
15 |  | BPLA_ReceiveInfo | 接收信息 | 不常用
16 |  | BPLA_SendFile | 发送指令文件 | 不常用
17 |  | BPLA_ReceiveFile | 接收信息保存到文件 | 不常用
18 | 调试 | BPLA_SetSaveFile | 将指令保存到文件 | 不常用
19 |  | BPLA_GetVersion | 获取版本信息 | 不常用
20 | 查询 | BPLA_CheckCom | 测试串口通讯 | 不常用
21 |  | BPLA_CheckStatus | 查询打印机的状态 | 常用
22 |  | BPLA_CheckCut | 测试切刀 | 不常用
23 | 设备设置 | BPLA_DownloadImage | 下载图象到RAM或FLASH中 | 不常用
24 |  | BPLA_DownloadFont | 下载点阵字体到RAM或FLASH中 | 不常用
25 |  | BPLA_DownErase | 删除RAM或FLASH中指定的文件 | 不常用
26 |  | BPLA_DownEraseAll | 删除RAM或FLASH中全部的文件 | 不常用
27 |  | BPLA_Reset | 复位打印机 | 不常用
28 |  | BPLA_ForBack | 进/退标签 | 不常用
29 |  | BPLA_SetSensor | 选择介质传感器 | 不常用
30 |  | BPLA_SetEnd | 设置停止位 | 常用
31 |  | BPLA_SetPaperLength | 设置连续纸长度\寻找标签的最大长度 | 不常用
32 |  | BPLA_Set | 出纸方式、打印方式、纸张类型设置 | 不常用
33 | 标签格式 | BPLA_StartArea | 进入标签模式 | 常用
34 |  | BPLA_Print | 打印标签 | 常用
35 |  | BPLA_SetAllRotate | 整体旋转180度 | 常用
36 |  | BPLA_SetAllMirror | 整体镜象 | 不常用
37 |  | BPLA_SetMirror | 设置票面内某些域成镜象效果。 | 不常用
38 |  | BPLA_SetCopy | 横向复制 | 不常用
39 |  | BPLA_SaveLabel | 保存标签不打印，主要和后面四个函数结合使用。 | 不常用
40 |  | BPLA_PrintSaveLabel | 打印指定数量已保存的标签 | 不常用
41 | 内容设置 | BPLA_PrintText | 打印内部字体 | 常用
42 |  | BPLA_PrintOut | 打印外部下载到RAM或FLASH中的字体。 | 常用
43 |  | BPLA_PrintMixText | 中英文混排打印 | 常用
44 |  | BPLA_PrintMixTextEx | 中英文混排打印 | 常用
45 |  | BPLA_PrintTruetype | 打印Truetype字体 | 常用
46 |  | BPLA_PrintTruetypeEx | 打印Truetype字体 | 常用
47 |  | BPLA_PrintBarcode | 设置一维条码的版面位置 | 常用
48 |  | BPLA_PrintPDF | 设置PDF417码的版面位置 | 常用
49 |  | BPLA_PrintQR | 设置QR码的版面位置 | 常用
50 |  | BPLA_PrintDatamatrix | 设置Datamatrix码的版面位置 | 常用
51 |  | BPLA_PrintMaxi | 设置Maxicode码的版面位置 | 不常用
52 |  | BPLA_PrintLine | 设置线段的版面位置，采用覆盖模式。 | 不常用
53 |  | BPLA_PrintBox | 设置矩形的版面位置 | 不常用
54 |  | BPLA_PrintCircle | 设置圆形的版面位置 | 不常用
55 |  | BPLA_LoadImage | 设置预下载图象的版面位置 | 常用
56 |  | BPLA_PrintImage | 设置直接下载图象的版面位置 | 不常用

［返回值定义］

序号 | 宏定义 | 数值 | 含义
1 | BPLA_OK | 1000 | 正常
2 | BPLA_COMERROR | 1001 | 通讯错或者未联接打印机
3 | BPLA_PARAERROR | 1002 | 参数错误
4 | BPLA_FILEOPENERROR | 1003 | 文件打开错误
5 | BPLA_FILEREADERROR | 1004 | 文件读错误
6 | BPLA_FILEWRITEERROR | 1005 | 文件写错误
7 | BPLA_FILEERROR | 1006 | 文件不合要求
8 | BPLA_NUMBEROVER | 1007 | 指定的接收信息数量过大
9 | BPLA_IMAGETYPEERROR | 1008 | 图象文件格式不正确
10 | BPLA_DRIVERERROR | 1009 | 驱动打开错误

［函数调用流程简介］

见函数调用流程图。

［版本历史］

版本兼容性：所有高版本向前兼容。

版本号：2.03版本。
发布时间：2008年3月。
说明：增加BTP-2100E差异化指令，修改函数临界值及修改帮助文件部分内容。

版本号：2.0版本。
发布时间：2006年3月。
说明：增加USB口支持,驱动程序支持,开发。

版本号：1.20版本。
发布时间：2003年3月
说明：经过试用后稳定工作的版本


打印机使用常识

--------------------------------------------------------------------------------

为了用户能够正确使用BPLADLL，在此介绍北洋条码打印机的一些基本使用常识。

[工作模式]

热敏：在该模式下，应使用热敏纸为打印介质．

热转印:在该模式下，使用碳带和纸为打印介质．

[纸张类型]

连续纸：无定位，有以下两类：

1）无黏合剂连续纸

a：卷筒纸宽度

2）带黏合剂连续纸

 a：卷筒纸宽度 b：纸宽度 c：纸边隙宽度

标记纸:背面带有黑标的纸张，打印机通过黑标进行定位。

a：标记纸宽度 b：标记纸高度 c：标记的起始点到纸边沿的距离 d：标记宽度 e：标记高度

标签纸:在底纸上粘贴一层，存在标签，打印机通过各个标签之间的间隔进行定位．

a：基纸宽度 b：纸边隙宽度 c：标签宽度 d：标签高度 e：间隙宽度

[出纸方式]

回卷模式：如果耗材为连续纸，按照设定的票面长度打印走纸，不判断标记，仅判断是否缺纸。没有后退动作；
如果耗材为标记纸或标签纸，打印完毕当前的标签后，将下一张标签的打印位置定位到打印线处。没有后退动作．

切离模式：如果耗材为连续纸，按照设定的票面长度打印走纸，需要切纸时，进纸到切纸位置，切完后立即退纸，不判断标记，仅判断是否缺纸；
如果耗材为标记纸或标签纸，打印完毕当前的标签后，需要切纸时，进纸到切纸位置，切完后立即退纸。

撕离模式：如果耗材为连续纸，按照设定的票面长度打印走纸，需要撕离时，进纸到撕离位置。进纸完成后并不立即判断是否撕离完成，而是每张票面打印前判断前一张票纸是否被撕离。
如果耗材为标记纸或标签纸，打印完毕当前的标签后，需要撕离时，进纸到撕离位置。成后并不立即判断是否撕离完成，而是每张票面打印前判断前一张票纸是否被撕离。

剥离模式：如果耗材为连续纸，按照设定的票面长度打印走纸，需要撕离时，进纸到撕离位置。进纸完成后并不立即判断是否撕离完成，而是每张票面打印前判断前一张票纸是否被撕离；
如果耗材为标记纸或标签纸，打印完毕当前的标签后，需要撕离时，进纸到撕离位置。成后并不立即判断是否撕离完成，而是每张票面打印前判断前一张票纸是否被撕离。

在撕离和剥离模式下连续打印，如果不希望每打印完一张都要按键才能进行下一张的打印，请参考疑难问题处理解答

[票面坐标]
    打印机采用左下角为原点的坐标系，在设置打印内容的各个函数中，其坐标指定的也是各打印内容的左下角坐标。如下图所示。

[域]

即FIELD，域可以由一个字符，也可以由多个字符组成，各个域分别描述了对象的各种属性。

[域处理模式]
在打印内容存在互相覆盖的情况时，提供以下四种效果。在内容设置类函数中介绍相关设置。

[连续域]
打印机可以自动增加批打印处理中每一个标签内指定域的值，包括字母、数字的递减和递增。比如第一张标签内某个域的内容是“A0001”，设置连续域后，第二张标签内相同域的内容可以是“A0002”，第三张为“A0003”，依次类推。在条码、文字设置函数中介绍相关设置。


输出函数

--------------------------------------------------------------------------------

输出函数分为端口控制、驱动控制、数据收发、调试、查询、设备设置、标签格式、内容设置八类
调用的流程是：

BPLA_SetSaveFile

[函数声明] int BPLA_SetSaveFile(bool bsave，char* filename，bool bport)

[功能] 将指令保存到文件

[参数] bsave： bool 类型，是否保存到文件的标志，true为保存，false为不保存。
filename： char*类型，在bsave为true时为准备保存的文件名 ，保存时不能为空，在bsave为false时，可以任意设置一个字符串。
bport： bool 类型，在保存的同时是否向端口发送，true为发送，false为不发送；仅在bsave为true时有效，如果bsave为false，则无论bport是什么值，都向端口发送。

[返回值] int型，成功为BPLA_OK；
保存文件时，文件名称为空，返回BPLA_PARAERROR。

[类型] 调试

[备注] 此函数保存发送内容到指定文件，主要用于检测发送指令的准确性，一般不常用。

[返回列表]

BPLA_GetVersion

[函数声明] int BPLA_GetVersion()

[功能] 　　获取版本信息

[参数] 　　无。

[返回值]　 DLL的版本信息，数字表示，目前版本信息为203，对应DLL版本为BPLADLL V2.03。

[类型] 调试

[返回列表]

BPLA_OpenCom

[函数声明] int BPLA_OpenCom(char* comname，int baudrate，int handshake)

[功能] 　　打开并配置、检测串口

[参数] 　　comname： char*类型，串口名；如‘com1’、‘com2’等。
       baudrate： int 类型，波特率，以波特率值表示，如2400、9600、19200、38400、56000、 57600、115200，目前支持这七种波特率设置。
Handshake： int 类型，握手协议，0为软握手，1为RTS/CTS ，2为DSR/DTR。

[返回值] 　int型，成功则为BPLA_OK，不成功可能为如下值：
 BPLA_PARAERROR：参数错误；
 BPLA_COMERROR：串口无法打开或通讯错误。

[类型] 端口控制

[返回列表]

BPLA_OpenComEx

[函数声明] int BPLA_OpenComEx(char* PortName，int Baudrate，int Handshake，int WriteTimeOut)

[功能] 　　打开并配置串口

[参数] 　　PortName： char*类型，串口名；如‘com1’、‘com2’等。
Baudrate： int 类型，波特率，以波特率值表示，如2400、9600、19200、38400、56000、 57600、115200，目前支持这七种波特率设置。
Handshake： int 类型，握手协议，0为软握手，1为RTS/CTS ，2为DSR/DTR。0-2。
WriteTimeOut： int 类型，写数据的超时时间，毫秒为单位。>=0。

[返回值] 　int型，成功则为BPLA_OK，不成功可能为如下值：
 BPLA_PARAERROR：参数错误；
 BPLA_COMERROR：串口无法打开。

[类型] 端口控制

[备注] BPLA_OpenComEx函数与BPLA_OpenCom函数的区别在于前者不发送任何指令或数据来检测串口通讯；后者通过发送串口检测指令，并能正确读取串口数据来监测 串口通讯是否正常。

[返回列表]

BPLA_CloseCom

[函数声明] int BPLA_CloseCom()

[功能] 关闭串口

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 端口控制

[返回列表]

BPLA_OpenLpt

[函数声明] int BPLA_OpenLpt(int address，int busySleep)

[功能] 打开并口

[参数] assress： int类型，并口数据端口地址，应该与系统设定的端口地址相符合，一般为0X378、0X278。
busySleep： int类型，并口超时等待时间设置，单位：毫秒。如果此值小于1000，则内部使用的值是1000。

[返回值] int型，成功返回BPLA_OK，参数错误返回BPLA_PARAERROR。如果地址设置错误，只有在发送数据时才能体现出来。

[类型] 端口控制

[备注] 调用并口控制函数前，需要安装并口驱动程序，并口驱动随BPLADLL动态库一起发布。

[返回列表]

BPLA_CloseLpt

[函数声明] int BPLA_CloseLpt()

[功能] 关闭并口

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 端口控制

[返回列表]

BPLA_OpenUsb

[函数声明] int BPLA_OpenUsb()

[功能] 打开USB口

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 端口控制

[备注] 调用USB控制函数前，需要安装USB设备驱动。由于打印机不同，USB设备驱动程序有所不同，所以USB驱动程序不随BPLADLL动态库一起发布。

[返回列表]

BPLA_OpenUsbByID

[函数声明] int BPLA_OpenUsbByID(int ID)

[功能] 通过内部ID号打开USB口，主要用于多台设备识别调用

[参数] ID： int类型，内部ID号。

[返回值] int型，成功为BPLA_OK，不成功可能为如下值：
 BPLA_PARAERROR：参数错误；
 BPLA_COMERROR：USB口无法打开。

[类型] 端口控制

[备注] 支持的条码打印机对应的USB内部ID号如下，如果需要可以联系新北洋技术人员，查询最新列表：

ID | 设备标识 | 端口名称 | 驱动名称 | ID | 设备标识 | 端口名称 | 驱动名称
96 | BTP-2100E2（U） 1 | USB_BTP-2100E2_1 | BTP-2100E2(U) 1 | 168 | BTP-2300G2（U） 1 | USB_BTP-2300G2_1 | BTP-2300G2(U) 1
97 | BTP-2100E2（U） 2 | USB_BTP-2100E2_2 | BTP-2100E2(U) 2 | 169 | BTP-2300G2（U） 2 | USB_BTP-2300G2_2 | BTP-2300G2(U) 2
98 | BTP-2100E2（U） 3 | USB_BTP-2100E2_3 | BTP-2100E2(U) 3 | 170 | BTP-2300G2（U） 3 | USB_BTP-2300G2_3 | BTP-2300G2(U) 3
99 | BTP-2100E2（U） 4 | USB_BTP-2100E2_4 | BTP-2100E2(U) 4 | 171 | BTP-2300G2（U） 4 | USB_BTP-2300G2_4 | BTP-2300G2(U) 4
100 | BTP-2100E2（U） 5 | Reserved |  | 172 | BTP-2300G2（U） 5 | Reserved |
101 | BTP-2100E2（U） 6 | Reserved |  | 173 | BTP-2300G2（U） 6 | Reserved |
102 | BTP-2100E2（U） 7 | Reserved |  | 174 | BTP-2300G2（U） 7 | Reserved |
103 | BTP-2100E2（U） 8 | Reserved |  | 175 | BTP-2300G2（U） 8 | Reserved |
104 | BTP-2100E3（U） 1 | USB_BTP-2100E3_1 | BTP-2100E3(U) 1 | 176 | BTP-2300G3（U） 1 | USB_BTP-2300G3_1 | BTP-2300G3(U) 1
105 | BTP-2100E3（U） 2 | USB_BTP-2100E3_2 | BTP-2100E3(U) 2 | 177 | BTP-2300G3（U） 2 | USB_BTP-2300G3_2 | BTP-2300G3(U) 2
106 | BTP-2100E3（U） 3 | USB_BTP-2100E3_3 | BTP-2100E3(U) 3 | 178 | BTP-2300G3（U） 3 | USB_BTP-2300G3_3 | BTP-2300G3(U) 3
107 | BTP-2100E3（U） 4 | USB_BTP-2100E3_4 | BTP-2100E3(U) 4 | 179 | BTP-2300G3（U） 4 | USB_BTP-2300G3_4 | BTP-2300G3(U) 4
108 | BTP-2100E3（U） 5 | Reserved |  | 180 | BTP-2300G3（U） 5 | Reserved |
109 | BTP-2100E3（U） 6 | Reserved |  | 181 | BTP-2300G3（U） 6 | Reserved |
110 | BTP-2100E3（U） 7 | Reserved |  | 182 | BTP-2300G3（U） 7 | Reserved |
111 | BTP-2100E3（U） 8 | Reserved |  | 183 | BTP-2300G3（U） 8 | Reserved |
112 | BTP-6200I2（U） 1 | USB_BTP-6200I2_1 | BTP-6200I2(U) 1 | 184 | BTP-2000SII2（U） 1 | USB_BTP-2000SII2_1 | BTP-2000SII2(U) 1
113 | BTP-6200I2（U） 2 | USB_BTP-6200I2_2 | BTP-6200I2(U) 2 | 185 | BTP-2000SII2（U） 2 | USB_BTP-2000SII2_2 | BTP-2000SII2(U) 2
114 | BTP-6200I2（U） 3 | USB_BTP-6200I2_3 | BTP-6200I2(U) 3 | 186 | BTP-2000SII2（U） 3 | USB_BTP-2000SII2_3 | BTP-2000SII2(U) 3
115 | BTP-6200I2（U） 4 | USB_BTP-6200I2_4 | BTP-6200I2(U) 4 | 187 | BTP-2000SII2（U） 4 | USB_BTP-2000SII2_4 | BTP-2000SII2(U) 4
116 | BTP-6200I2（U） 5 | Reserved |  | 188 | BTP-2000SII2（U） 5 | Reserved |
117 | BTP-6200I2（U） 6 | Reserved |  | 189 | BTP-2000SII2（U） 6 | Reserved |
118 | BTP-6200I2（U） 7 | Reserved |  | 190 | BTP-2000SII2（U） 7 | Reserved |
119 | BTP-6200I2（U） 8 | Reserved |  | 191 | BTP-2000SII2（U） 8 | Reserved |
120 | BTP-6200I3（U） 1 | USB_BTP-6200I3_1 | BTP-6200I3(U) 1 | 192 | BTP-2000SII3（U） 1 | USB_BTP-2000SII3_1 | BTP-2000SII3(U) 1
121 | BTP-6200I3（U） 2 | USB_BTP-6200I3_2 | BTP-6200I3(U) 2 | 193 | BTP-2000SII3（U） 2 | USB_BTP-2000SII3_2 | BTP-2000SII3(U) 2
122 | BTP-6200I3（U） 3 | USB_BTP-6200I3_3 | BTP-6200I3(U) 3 | 194 | BTP-2000SII3（U） 3 | USB_BTP-2000SII3_3 | BTP-2000SII3(U) 3
123 | BTP-6200I3（U） 4 | USB_BTP-6200I3_4 | BTP-6200I3(U) 4 | 195 | BTP-2000SII3（U） 4 | USB_BTP-2000SII3_4 | BTP-2000SII3(U) 4
124 | BTP-6200I3（U） 5 | Reserved |  | 196 | BTP-2000SII3（U） 5 | Reserved |
125 | BTP-6200I3（U） 6 | Reserved |  | 197 | BTP-2000SII3（U） 6 | Reserved |
126 | BTP-6200I3（U） 7 | Reserved |  | 198 | BTP-2000SII3（U） 7 | Reserved |
127 | BTP-6200I3（U） 8 | Reserved |  | 199 | BTP-2000SII3（U） 8 | Reserved |
152 | BTP-2300T2（U） 1 | USB_BTP-2300T2_1 | BTP-2300T2(U) 1 | 200 | BTP-6800K2（U） 1 | USB_BTP-6800K2_1 | BTP-6800K2(U) 1
153 | BTP-2300T2（U） 2 | USB_BTP-2300T2_2 | BTP-2300T2(U) 2 | 201 | BTP-6800K2（U） 2 | USB_BTP-6800K2_2 | BTP-6800K2(U) 2
154 | BTP-2300T2（U） 3 | USB_BTP-2300T2_3 | BTP-2300T2(U) 3 | 202 | BTP-6800K2（U） 3 | USB_BTP-6800K2_3 | BTP-6800K2(U) 3
155 | BTP-2300T2（U） 4 | USB_BTP-2300T2_4 | BTP-2300T2(U) 4 | 203 | BTP-6800K2（U） 4 | USB_BTP-6800K2_4 | BTP-6800K2(U) 4
156 | BTP-2300T2（U） 5 | Reserved |  | 204 | BTP-6800K2（U） 5 | Reserved |
157 | BTP-2300T2（U） 6 | Reserved |  | 205 | BTP-6800K2（U） 6 | Reserved |
158 | BTP-2300T2（U） 7 | Reserved |  | 206 | BTP-6800K2（U） 7 | Reserved |
159 | BTP-2300T2（U） 8 | Reserved |  | 207 | BTP-6800K2（U） 8 | Reserved |
160 | BTP-2300T3（U） 1 | USB_BTP-2300T3_1 | BTP-2300T3(U) 1 | 208 | BTP-6800K3（U） 1 | USB_BTP-6800K3_1 | BTP-6800K3(U) 1
161 | BTP-2300T3（U） 2 | USB_BTP-2300T3_2 | BTP-2300T3(U) 2 | 209 | BTP-6800K3（U） 2 | USB_BTP-6800K3_2 | BTP-6800K3(U) 2
162 | BTP-2300T3（U） 3 | USB_BTP-2300T3_3 | BTP-2300T3(U) 3 | 210 | BTP-6800K3（U） 3 | USB_BTP-6800K3_3 | BTP-6800K3(U) 3
163 | BTP-2300T3（U） 4 | USB_BTP-2300T3_4 | BTP-2300T3(U) 4 | 211 | BTP-6800K3（U） 4 | USB_BTP-6800K3_4 | BTP-6800K3(U) 4
164 | BTP-2300T3（U） 5 | Reserved |  | 212 | BTP-6800K3（U） 5 | Reserved |
165 | BTP-2300T3（U） 6 | Reserved |  | 213 | BTP-6800K3（U） 6 | Reserved |
166 | BTP-2300T3（U） 7 | Reserved |  | 214 | BTP-6800K3（U） 7 | Reserved |
167 | BTP-2300T3（U） 8 | Reserved |  | 215 | BTP-6800K3（U） 8 | Reserved |

[返回列表]

BPLA_CloseUsb

[函数声明] int BPLA_CloseUsb()

[功能] 关闭USB口

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 端口控制

[返回列表]

BPLA_SetTimeOut

[函数声明] int BPLA_SetTimeOut(int WriteTimeOut)

[功能] 设置端口写超时

[参数] WriteTimeOut： int类型，超时时间，单位：毫秒，WriteTimeOut >= 0。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR，参数错误为BPLA_PARAERROR。

[类型] 端口控制

[返回列表]

BPLA_OpenPrinterDriver

[函数声明] int BPLA_OpenPrinterDriver(char* DriverName)

[功能] 打开驱动

[参数] DriverName： char*类型，驱动程序名称，不能为空。

[返回值] int型，成功为BPLA_OK，失败为BPLA_DRIVERERROR，驱动名称为空返回BPLA_PARAERROR。

[类型] 驱动控制

[备注] 如果打印机驱动程序本身支持网络打印功能，此函数就支持网络打印功能。

[返回列表]

BPLA_ClosePrinterDriver

[函数声明] int BPLA_ClosePrinterDriver()

[功能] 关闭驱动

[参数] 无。

[返回值] int型，固定为BPLA_OK。

[类型] 驱动控制

[返回列表]

BPLA_StartDoc

[函数声明] int BPLA_StartDoc()

[功能] 开启打印作业

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_DRIVERERROR。

[类型] 驱动控制

[返回列表]

BPLA_EndDoc

[函数声明] int BPLA_EndDoc()

[功能] 关闭打印作业

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_DRIVERERROR。

[类型] 驱动控制

[返回列表]

BPLA_SendCommand

[函数声明] int BPLA_SendCommand(char* command，int commandlength)

[功能] 发送指定的指令

[参数] command： char*类型，指令字符串。
commandlength： int 类型，指令字符串的长度。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 数据收发

[备注] 如果打印机的指令不包含在BPLADLL动态库输出的函数里面，可以调用此函数下发指定的指令。

[返回列表]

BPLA_ReceiveInfo

[函数声明] int BPLA_ReceiveInfo(int relength， char* buffer，int* length ，int time)

[功能] 接收信息

[参数] relength： int 类型，试图接收的长度。
buffer： char*类型，接收缓冲区指针，不能为空。
length： int *类型，实际接收字节的长度。
time： int 类型，接收字节的时间限制，毫秒为单位。

[返回值] int型，成功接收为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
BPLA_COMERROR ----- 超时或端口无效；
 BPLA_NUMBEROVER---指定的接收信息数量过大。

[类型] 数据收发

[备注] 并口、驱动程序控制不支持读取功能，此函数在并口、驱动程序控制下调用失败。

[返回列表]

BPLA_SendFile

[函数声明] int BPLA_SendFile(char* filename)

[功能] 发送指令文件

[参数] filename： char*类型，指令文件名，不能为空。

[返回值] int 型，成功接收为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_FILEOPENERROR—文件无法打开；
 BPLA_FILEREADERROR---文件读取错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 数据收发

[返回列表]

BPLA_ReceiveFile

[函数声明] int BPLA_ReceiveFile(int relength，char* filename，int *length，int time)

[功能] 接收信息保存到文件

[参数] relength： int 类型，试图接收的字节长度。
filename： char*类型，接收文件名，不能为空。
length： int *类型，实际接收字节的长度。
time： int 类型，接收字节的时间限制，毫秒为单位，time > 0。

[返回值] int型，成功接收为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
BPLA_COMERROR ----- 超时或端口无效；
 BPLA_FILEOPENERROR—文件无法打开；
 BPLA_FILEWRITEERROR---文件写操作错误；
 BPLA_NUMBEROVER---指定的接收信息数量过大。

[类型] 数据收发

[备注] 并口、驱动程序控制不支持读取功能，此函数在并口、驱动程序控制下调用失败。

[返回列表]

BPLA_DownloadImage

[函数声明] int BPLA_DownloadImage(char* imagename，int imagetype，int modeltype， char* filename)

[功能] 下载图象到RAM或FLASH中

[参数] imagename： char*类型，在存储模块中保存的文件名，不能为空，最多8个字符。
imagetype： int 类型，图象类型0-7对应图象如下图，均为单色图象。

类型 | 格式
0 | 7位十六进制文件格式（格式见附录）
1 | 二进制行编码位图（格式见附录）
2 | BMP 8位格式（取反） 256色或单色
3 | BMP 8位格式 256色或单色
4 | IMG 8位格式（取反）
5 | IMG 8位格式
6 | PCX 8位格式（取反）
7 | PCX 8位格式

modeltype： int 类型，存储模块的类型 0：RAM 1：FLASH。
filename： char*类型，下载图象文件名 ，不能为空。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
BPLA_IMAGETYPEERROR - 位图格式错误；
 BPLA_COMERROR ------ 发送指令失败；
BPLA_FILEOPENERROR—- 文件无法打开；
 BPLA_FILEREADERROR--- 文件读取错误。

[类型] 设备设置

[返回列表]

BPLA_DownloadFont

[函数声明] int BPLA_DownloadFont(char* fontname，int modeltype，int fonttype，int fontid，int fontwidth，int fontheight，int startareacode，int startbitcode，int number， char* filename)

[功能] 下载点阵字体到RAM或FLASH中

[参数] fontname： char*类型，在存储模块中保存的文件名，不能为空。
modeltype： int 类型，存储模块的类型代码 0：RAM 1：FLASH。
fonttype： int 类型，字体类型代码 0：ASCII 1：汉字。
fontid： int 类型，在存储模块中的字体代号00-99。
fontwidth、fontheight： int类型，字体宽度、高度，以点为单位，0000-9999。
startareacode： int 类型，如果fonttype为0，此参数固定为0，如果fonttype为1，此参数为起始汉字的区码，0Xb0-0Xf7。
startbitcode： int 类型，如果fonttype为0，此参数为0X00-0Xff，如果fonttype为1，此参数为起始汉字的位码，0Xa1-0Xfe。
number： int 类型，下载字的个数。
filename： char*类型，下载点阵字体文件名，不能为空。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_FILEOPENERROR—文件无法打开；
 BPLA_FILEERROR ----文件不符合要求；
 BPLA_FILEREADERROR---文件读取错误；
BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[备注] 一般情况下不使用此函数下载字体，采用固定的下载字体工具。

[返回列表]

BPLA_DownErase

[函数声明] int BPLA_DownErase(int modeltype，int filetype， char* filename)

[功能] 删除RAM或FLASH中指定的文件

[参数] modeltype： int 类型，存储模块的类型代码 0：RAM 1：FLASH。
filetype： int 类型，文件类型 0：图象文件 1：字体文件。
filename： char*类型，在存储模块中保存的文件名 ，不能为空，0 <定长<= 8。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[备注] 调用此函数删除文件，文件可以被删除，但RAM或FLASH中的空间未被释放。

[返回列表]

BPLA_DownEraseAll

[函数声明] int BPLA_DownEraseAll(int modeltype)

[功能] 删除RAM或FLASH中全部的文件

[参数] modeltype： int类型，存储模块的类型代码0：RAM 1：FLASH。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[备注] 调用此函数，文件被删除，空间同时被释放。

[返回列表]

BPLA_Reset

[函数声明] int BPLA_Reset ()

[功能] 复位打印机

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 设备设置

[备注] 打印机复位瞬间不接收数据，如果这时下发数据，可能会出现丢数据的现象；同时注意在使用USB通讯时，复位后需要重新开启USB端口。

[返回列表]

BPLA_ForBack

[函数声明] int BPLA_ForBack(int distance，int delaytime)

[功能] 进/退标签

[参数] distance： int类型，进退距离0-9999，单位：点，毫米/10，英寸/100。
delaytime： int类型，等待时间 0-9999，单位：毫秒。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[返回列表]

BPLA_SetSensor

[函数声明] int BPLA_SetSensor(int labelmode)

[功能] 选择介质传感器

[参数] label： int类型，0为黑标纸 1为透明标签，如果为连续纸，此函数不要调用。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[返回列表]

BPLA_SetEnd

[函数声明] int BPLA_SetEnd(int position)

[功能] 设置停止位

[参数] position： int类型，0-999， 0：存在传感器和按键起作用，非0：打印机不判别是否撕掉或剥掉，直接出纸到停止位。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[备注] 此函数使用方法可以参考“附录/疑难问题解答/［问题］程序控制打印机打印多张，但第一张打印完毕后，指示灯闪烁，无报警，需要按下按键下一张才出来，为什么？”

[返回列表]

BPLA_SetPaperLength

[函数声明] int BPLA_SetPaperLength(int continuelength，int labellength)

[功能] 设置连续纸长度\寻找标签的最大长度

[参数] continuelength： int类型， 0-9999连续纸长度，如果为0，则不进行设置，单位：点，毫米/10，英寸/100。
labellength： int类型，0-9999寻找标签的最大长度，如果为0，则不进行设置，单位：点，毫米/10，英寸/100。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[备注] 开机时连续纸长度为保存在EEPROM里的纸张长度。

[返回列表]

BPLA_Set

[函数声明] int BPLA_Set(int outmode，int papermode，int printmode)

[功能] 出纸方式、打印方式、纸张类型设置

[参数] outmode： int类型，0-3 切刀，剥离，撕离，回卷。
papermode： int类型，0-1 非连续纸，连续纸。
printmode： int类型，0-1 热敏打印，热转印打印。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 设备设置

[备注] 此函数设置在打印机关电后不保存，下次启动后还是原来的设置。

[返回列表]

BPLA_StartArea

[函数声明] int BPLA_StartArea( int unitmode，int printwidth，int column，int row，int darkness，int speedprint，int speedfor，int speedbac)

[功能] 开始票面排版，并设置票面打印参数。

[参数] 参数如果设置为0，则表示不进行此项配置，该项配置选用系统默认值。
unitmode： int类型，单位模式 0-3 ； 1：米制 2：点 3：英制。
printwidth： int类型，打印宽度设置。单位由参数unitmode决定 0-1040。
column： int类型，列偏移数 0-9999。
row： int类型，行偏移数 0-9999。
darkness： int类型，打印浓度 0-30。
speedprint： int类型，打印速度 0-20，对应从A到T。
speedfor： int类型，进纸速度 0-20，对应从A到T。
speedbac： int类型，退纸速度 0-20，对应从A到T。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 标签格式

[备注] 各个速度参数值对应速度如下：

索引 | 速度 | 索引 | 速度 | 索引 | 速度 | 索引 | 速度
1 | 13mm/s | 6 | 76mm/s | 11 | 140mm/s | 16 | 203mm/s
2 | 25mm/s | 7 | 89mm/s | 12 | 152mm/s | 17 | 216mm/s
3 | 38mm/s | 8 | 102mm/s | 13 | 165mm/s | 18 | 227mm/s
4 | 51mm/s | 9 | 114mm/s | 14 | 178mm/s | 19 | 241mm/s
5 | 63mm/s | 10 | 127mm/s | 15 | 191mm/s | 20 | 254mm/s

[返回列表]

BPLA_SetMirror

[函数声明] int BPLA_SetMirror()

[功能] 设置票面内某些域成镜象效果

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 标签格式

[备注] 此函数在BPLA_StartArea后调用，只对部分域有效。

[返回列表]

BPLA_Print

[函数声明] int BPLA_Print(int pieces，int samepieces，int outunit)

[功能] 打印指定数量的标签

[参数] pieces： int类型，打印数量 1-9999。
samepieces： int类型，连续域时相同标签的打印数量 0-99， 如没有了连续域则使用0。
outunit： int类型，出纸单位1-9999。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 标签格式

[返回列表]

BPLA_SaveLabel

[函数声明] int BPLA_SaveLabel ( )

[功能] 保存标签不打印，主要和后面四个函数结合使用

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 标签格式

[返回列表]

BPLA_PrintSaveLabel

[函数声明] int BPLA_PrintSaveLabel(int pieces)

[功能] 打印指定数量的已保存的标签

[参数] pieces： int型，打印数量 1-9999。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 标签格式

[返回列表]

BPLA_SetCopy

[函数声明] int BPLA_SetCopy(int pieces，int gap)

[功能] 横向复制

[参数] pieces： int类型，复制份数 0-9。
gas： int类型，复制间距 0-9999。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
BPLA_COMERROR ----- 发送指令失败。

在使用这项功能时，打印头的宽度必须是打印缓冲宽度的两倍以上。

[类型] 标签格式

[返回列表]

BPLA_SetAllMirror

[函数声明] int BPLA_SetAllMirror()

[功能] 整体镜象

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 标签格式

[返回列表]

BPLA_SetAllRotate

[函数声明] int BPLA_ SetAllRotate (int rotatemode)

[功能] 整体旋转180度

[参数] rotatemode： int类型，旋转模式 0 为不旋转，1为旋转。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 标签格式

[返回列表]

BPLA_PrintLine

[函数声明] int BPLA_PrintLine(int startx，int starty，int endx，int endy，int linewidth)

[功能] 设置线段的版面位置，采用覆盖模式。

[参数] startx，starty： int类型，起点位置坐标0-9999，单位：点，毫米/10，英寸/100。
endx，enty： int类型，终点位置坐标0-9999。
linewidth： int类型，线宽0-999。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 内容设置

[返回列表]

BPLA_PrintBox

[函数声明] int BPLA_PrintBox(int startx，int starty，int width，int height，int horizontal，int vertical，int bitmode)

[功能] 设置矩形的版面位置

[参数] startx、starty： int类型，起点位置坐标 0-9999。
width： int类型，矩形宽度 0-9999。
height： int类型，矩形高度 0-9999。
horizontal： int类型，左右边界线宽 0-9999。
vertical： int类型，上下边界线宽 0-9999。
bitmode： int类型，域处理模式 0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 内容设置

[返回列表]

BPLA_PrintCircle

[函数声明] int BPLA_PrintCircle(int centerx，int centery，int radius，int linewidth，int bitmode)

[功能] 设置圆形的版面位置

[参数] centerx，centery：int型，中心坐标 0-9999。
radius： int型，半径 0-9999。
linewidth： int型，线宽度 0-999。
bitmode： int型，域处理模式 0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式，0-4。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
BPLA_COMERROR ----- 发送指令失败。

[类型] 内容设置

[返回列表]

BPLA_LoadImage

[函数声明] int BPLA_LoadImage(char* imagename，int startx，int starty，int pointwidth，int pointheight，int bitmode)

[功能] 设置预下载图象的版面位置

[参数] imagename： char*型，在存储模块中保存的图象名。
startx，starty：int 型，起点坐标 0-9999。
pointwidth，pointheight：int 型，放大倍数1-23。
bitmode： int 型，域处理模式 0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 内容设置

[返回列表]

BPLA_PrintImage

[函数声明] int BPLA_PrintImage(char* imagename，int startx，int starty，int bitmode)

[功能] 设置直接下载图象的版面位置，支持BMP单色位图，要求位图的宽度点数为32的倍数

[参数] imagename： char*型，图象文件名。
startx，starty：int 型，起点坐标 0-9999。
bitmode： int 型，域处理模式，0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式 。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；
 BPLA_FILEOPENERROR—文件无法打开；
 BPLA_FILEREADERROR---文件读取错误；
 BPLA_IMAGETYPEERROR --图象文件格式不正确。

[类型] 内容设置

[返回列表]

BPLA_PrintText

[函数声明] int BPLA_PrintText(char* text，int startx，int starty，int rotate，int fonttype，int pointwidth，int pointheight， char* addvalue，int space，int bitmode)

[功能] 打印内部字体

[参数] text： char*型，需要打印的文字。
startx、starty：int 型，文字起点坐标 0-9999。
rotate： int 型，文字旋转方向 1-4分别代表逆时针旋转0、90、180、270度。
fonttype： int 型，文字类型代码 0-22，字体参见“附录/内部ASCII码点阵字体”。
pointwidth： int 型，宽度放大点数 1-23。
pointheigh： int 型，高度放大点数 1-23。
addvalue： char*型，连续域递变值，可以为字母或数字设定递变值，如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”，此项值必须是长度为3个字节的字符串，如“+10”、“-08”、“>20”、“<10”等等。如果不准备使用递变值，则 必须将此项设置为“000”。
space： int 型，字间距 -99 -- 99。
bitmode： int 型，域处理模式 0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式/

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 内容设置

[返回列表]

BPLA_PrintOut

[函数声明] int BPLA_PrintOut(char* text，int startx，int starty，int rotate，char* fonttype，int pointwidth，int pointheight， char* addvalue，int space，int bitmode)

[功能] 打印外部下载到RAM或FLASH中的字体

[参数] text： char*型，需要打印的文字。
startx、starty：int 型，文字起点坐标0-9999。
rotate： int 型，文字旋转方向 1—4分别代表逆时针旋转0、90、180、270度。
fonttype： char*型，文字类型代码：字符串表示。
pointwidth： int 型，宽度放大点数 1--23。
pointheight： int 型，高度放大点数 1--23。
addvalue： char*型，连续域递变值，可以为字母或数字设定递变值，如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”，此项值必须是长度为3个字节的字符串，如“+10”、“-08”、“>20”、“<10”等等。如果不准备使用递变值，则 必须将此项设置为“000”。
space： int 型，字间距 –99 ----99。
bitmode： int 型，域处理模式 0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败。

[类型] 内容设置

[备注] fonttype参数格式说明：

举例：下载的字库文件名称为：ST32-B21.FON ，代表“宋体32字体”，代号为“B21”。“B21”就是fonttype参数格式。

[返回列表]

BPLA_PrintMixText

[函数声明] int BPLA_PrintMixText(char* text，int startx，int en_starty，int cn_starty，int rotate， int en_fonttype，char* cn_fonttype，int en_width，int cn_width， int pointwidth，int pointheight，char* addvalue，int space，int bitmode);

[功能] 打印外部下载到RAM或FLASH中的字体

[参数] text： char*型，需要打印的文字。
startx： int 型，文字横向起点坐标 ， 0-9999 。
en_starty： int 型，ASCII码文字纵向起点坐标 ，0-9999。
cn_starty： int 型，汉字纵向起点坐标 ，0-9999。
rotate： int 型，文字旋转方向， 1-4分别代表逆时针旋转0、90、180、270度。
en_fonttype：int 型，ASCII码文字类型代码，数字 0-22，参见“附录/内部ASCII码点阵字体”。
cn_fonttype：char*型，汉字类型代码，字符串表示。
en_width ： int 型，连续ASCII码文字宽度，最好与指定字体宽度相符，>0。
cn_width ： int 型，连续汉字宽度，最好与指定字体宽度相符，>0。
pointwidth： int 型，宽度放大点数，1--23。
pointheight：int 型，高度放大点数，1--23。
addvalue： char*型，连续域递变值，可以为字母或数字设定递变值， 如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如 从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”， 此项值必须是长度为3个字节的字符串，如“+10”、“-08”、 “>20”、“<10”等等。如果不准备使用递变值，则必须将此项设置为“000”。
space： int 类型，字间距 ， -99 ----99 。
bitmode： int 类型，域处理模式，0：默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[返回列表]

BPLA_PrintMixTextEx

[函数声明] int BPLA_PrintMixTextEx(char* text，int startx，int cn_starty，int xy_adjust，int rotate， char* en_fonttype，char* cn_fonttype，int pointwidth，int pointheight，char* addvalue，int space，int bitmode);

[功能] 打印外部下载到RAM或FLASH中的字体

[参数] text： char*类型，需要打印的文字。
startx： int 类型，文字横向起点坐标 ， 0-9999。
cn_starty： int 类型，汉字纵向起点坐标 ，0-9999。
xy_adjust： int 类型，ASCII码和汉字坐标纵向相对调整，-999-+999。
rotate： int 类型，文字旋转方向，1-4分别代表逆时针旋转0、90、180、270度。
en_fonttype：char*类型，ASCII码文字类型代码，字符串表示,格式：“XYNN”，见备注。
cn_fonttype：char*类型，汉字类型代码，字符串表示。
pointwidth： int 类型，宽度放大点数，1--23。
pointheight：int 类型，高度放大点数，1--23。
addvalue： char*类型，连续域递变值，可以为字母或数字设定递变值， 如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如 从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”， 此项值必须是长度为3个字节的字符串，如“+10”、“-08”、 “>20”、“<10”等等。如果不准备使用递变值，则必须将此项设置为“000”。
space： int 类型， 字间距 ，-99 ----99。
bitmode： int 类型，域处理模式，，0： 默认模式（异或）或上次设定的模式 1：异或模式 2：透明模式 3：不透明模式 4：反色模式

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[备注] 1、en_fonttype格式“XYNN”说明：

X： 1）当X值为0时，设置为内部字体，YNN的取值范围为000~008
2）当X值为9时，根据Y的值确定英文字体代号：
当Y的值为0时，设置为内部字体，NN的取值范围为00~07
当Y的值为P时，设置为内部字体，NN的取值范围为：06，08，10，12，14，18
当Y的值为A时，设置为RAM扩展字体，NN取值范围为：00~99
当Y的值为B时，设置为FLASH扩展字体，NN取值范围为：00~99
举例：“9B13”，即在中英文混排时，英文字体设置为FLASH中的代号为B13的字体。

2、存在某类打印机不支持指令格式，此函数无效，具体不支持情况清与厂商人员联系。
[返回列表]

BPLA_PrintTruetype

[函数声明] int BPLA_PrintTruetype(char* text，int startx，int starty， char* fontname，int fontheight，int fontwidth)

[功能] 设置Truetype字体打印位置

[参数] text： char*类型，需要打印的文字。
startx，starty：int 类型，文字起点坐标 >=0。
fontname： char*类型，TRUETYPE字体名称，字符集依照GB2312_CHARSET。
fontheight： int 类型，字体高度 >=0。
fontwidth： int 类型，字体宽度，如果为0，则根据高度自动匹配宽度，如果不为0，则宽度为设定值，允许设置不规则字体。
[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败

[类型] 内容设置

[返回列表]

BPLA_PrintTruetypeEx

[函数声明] int BPLA_PrintTruetypeEx(char* text，int startx，int starty， char* fontname，int fontheight，int fontwidth，int rowrotate)

[功能] 设置Truetype字体打印位置，允许设置角度

[参数] text： char*类型，需要打印的文字。
startx，starty：int 类型，文字起点坐标 >=0。
fontname： char*类型，TRUETYPE字体名称，字符集依照GB2312_CHARSET。
fontheight： int 类型，字体高度 >=0。
fontwidth： int 类型，字体宽度，如果为0，则根据高度自动匹配宽度，如果不为0，则宽度为设定值，允许设置不规则字体。
rowrotate： int 类型，整行文字的逆时针旋转方向 1- 0度；2-90度；3-180度；4-270度。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[返回列表]

BPLA_PrintBarcode

[函数声明] int BPLA_PrintBarcode(char* codedata，int startx，int starty，int rotate，int bartype，int height，int number，int numberbase， char* addvalue)

[功能] 设置一维条码的版面位置

[参数] codedata： char*类型，条码数据。
startx，starty： int 类型，坐标起点 0-9999。
rotate： int 类型，旋转方向 1--4分别代表逆时针旋转0、90、180、270度。
bartype： int 类型，条码类型0-19（有标记文字） 20-39（无标记文字）参见“附录/条码”。
height： int 类型，条码高度，0-999。
number： int 类型，比例分子，1-22。
numberbase： int 类型，比例分母 比例分子与分母的设置见参见“附录/条码”。
addvalue：char*类型，连续域递变值，可以为字母或数字设定递变值，如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”，此项值必须是长度为3个字节的字符串，如“+10”、“-08”、“>20”、“<10”等等。如果不准备使用递变值，则 必须将此项设置为“000”。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[备注] 条码说明见“附录/条码”

[返回列表]

BPLA_PrintPDF

[函数声明] int BPLA_PrintPDF(char* codedata，int startx，int starty，int rotate，int basewidth，int baseheight，int scalewidth，int scaleheight，int row，int column，int cutmode，int level，int length，char* addvalue)

[功能] 设置PDF417码的版面位置

[参数] codedata： char*类型，条码信息；可以为0X01-0XFF之间的所有字符。
startx、starty：int 类型，起点坐标 0-9999。
rotate： int 类型，旋转方向 1-4分别代表逆时针旋转0、90、180、270度。
basewidth，baseheight： int类型，基本元素宽度和高度，0< basewidth <23,0< baseheight <23。
scalewidth，scaleheight：int类型，宽高比例。00代表1：2。在这两项设置有效时，条码的宽度和高度尽可能维持设定的外观比例，可能有少量或者没有冗余数据。
row： int 类型，行数 0，3-90；column：int类型，列数 0-30 。这两项设置有效时，条码按照指定的行列数显示，如果指定的行列数不足以显示条码信息，打印机会增加列数以符合要求。如果指定的行列数对于条码数据来说太小，则在票面位置允许的情况下，保持条码列数为设定值，自动增加行数至可以显示全部条码信息。特别说明：scalewidth、scaleheight和row、column是两对设置PDF417码整体宽度和高度的参数，在row、column 其中一项为0时，scalewidth、scaleheight的设置有效，否则依照row、column的设置对条码的宽高进行设置。
cutmode： int 类型，是否截断 0：非截短 1：截短。
level： int 类型，校验级别 1-8。
length： int 类型，信息字节长度。
addvalue： char*类型，连续域递变值，可以为字母或数字设定递变值，如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”，此项值必须是长度为3个字节的字符串，如“+10”、“-08”、“>20”、“<10”等等。如果不准备使用递变值，则 必须将此项设置为“000”。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[备注] 关于对PDF417码的说明参见“附录/条码/PDF417码”

[返回列表]

BPLA_PrintMaxi

[函数声明] int BPLA_PrintMaxi(char* codedata，int startx，int starty，char* addvalue)

[功能] 设置MaxiCode条码

[参数] codedata： char*类型，条码信息；必须为可见字符（包括数字、字母），数据长度不应超过84个字符。
startx、starty：int 类型，起点坐标 0-9999。
addvalue： char*类型，连续域递变值，可以为字母或数字设定递变值，如果为字母，递增使用符号“>”，递减使用符号“<”，比如从“m”开始递增，每次跳一个，则可以使用“>01”，递减，每次跳一个，则使用“<01”；如果为数字，递增使用符号“+”，递减使用符号“-”，比如从“10”开始递增，每次加1，则可以使用“+01”，递减，每次减1，则使用“-01”，此项值必须是长度为3个字节的字符串，如“+10”、“-08”、“>20”、“<10”等等。如果不准备使用递变值，则 必须将此项设置为“000”。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[返回列表]

BPLA_PrintQR

[函数声明] int BPLA_PrintQR(unsigned char* codedata,int startx,int starty,int weigth,int symboltype,int languagemode,int number)

[功能] 设置QR码

[参数] codedata： unsigned char*类型，条码信息； 所有ASCII码，长度不限。
startx、starty：int 类型，起点坐标 0-9999。
weigth： int 类型，基本元素宽度，1-10。
symboltype： int 类型，符号类型，取值范围：1—原始类型，2—增强类型。
languagemode： int 类型，语言模式，取值范围：0—中文，1—日文。
number： int 类型，编码的数据个数，>0。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[备注] 编码数据共5部分组成，输入格式如下：
i、 Daabbcc，
D ： 链接结构模式，输入特定标识符“D”，此模式可选，如果选定此模式，后面的三个参数和分隔符必须指定。
aa： 特定符号的位置，输入两位十进制数字。
bb： 符号总数，输入两位十进制数字。
cc： 奇偶性数据，输入两位十六进制数字。
，： 为固定分隔符。
ii、 E： 错误纠错级别，取值范围：L、M、Q、H，纠错级别依次变大。
iii、M： 掩模图形参考，取值范围：缺省为自动掩模。
iv、 M： 数据输入模式，取值范围：A或M，A为自动模式（推荐使用），M为手动输入模式；如果指定A模式，字符模式就不用指定；如果指定为M模式，字符模式必须指定。缺省为自动模式。
v、 <字符模式><DATA1>，
<字符模式><DATA2>，
<字符模式><DATA3>，
……………………….
<字符模式><DATAn>
注：n>=200
字符输入模式<N、A、B、K>
N：数字(0~9)
A：字母和数字混排(0~9)(A~Z)(SP,$,%,*,+,-,.,/,:)
Bxxxx：8位字节模式(0x00~0xFF)
K：日本汉字
条的合法宽度：宽窄条的比率不可调。
举例：D03048F,LM,N0123456789,A12AABB,B0006qrcode

[返回列表]

BPLA_PrintDatamatrix

[函数声明] int BPLA_PrintDatamatrix(unsigned char* codedata,int startx,int starty,int weigth,int reversecolor,int shape,int number)

[功能] 设置Datamatrix码

[参数] codedata： unsigned char*类型，条码信息； 所有ASCII码，长度不限。
startx、starty：int 类型，起点坐标 0-9999。
weigth： int 类型，基本元素宽度，1-10。
reversecolor： int 类型，反色属性，取值范围：0—反色，1—不反色。
shape： int 类型，形状属性，取值范围：0—正方形，1—长方形。
number： int 类型，编码的数据个数，>0。

[返回值] int型，成功为BPLA_OK，错误有以下情况：
 BPLA_PARAERROR ------ 参数错误；
 BPLA_COMERROR ----- 发送指令失败；

[类型] 内容设置

[返回列表]

BPLA_CheckCom

[函数声明] int BPLA_CheckCom()

[功能] 测试串口通讯

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR

[类型] 查询

[返回列表]

BPLA_CheckStatus

[函数声明] int BPLA_CheckStatus(char* papershort， char* ribbionshort，char* busy， char* pause， char* com， char* headheat， char* headover， char* cut)

[功能] 测试打印机状态

[参数] papershort： char*类型，正常为“N”，缺纸为“Y”。
ribbionshort： char*类型，正常为“N”，缺色带为“Y”。
busy： char*类型，正常为“N”， 解释器忙为“Y”。
pause： char*类型，正常为“N”， 处于暂停中为“Y”。
com： char*类型，正常为“N”， 串口通讯错误为“Y”。
headheat： char*类型，正常为“N”， 打印头过热为“Y”。
headover： char*类型，正常为“N”， 打印头抬起为“Y”。
cut： char*类型，正常为“N”， 切刀错误为“Y”。

[返回值] int型，成功测试状态为BPLA_OK，失败为BPLA_COMERROR。而打印机的状态，则通过各个参数所接收的值来判断。

[类型] 查询

[备注] 打印完后需要等待一段时间才可查询正确的状态，等待时间与端口通讯、打印内容数据量、纸张长度等因素有关，但并不影响打印速度。并口、驱动程序控制下无法查询状态。

[返回列表]

BPLA_CheckCut

[函数声明] int BPLA_CheckCut()

[功能] 测试切刀

[参数] 无。

[返回值] int型，成功为BPLA_OK，失败为BPLA_COMERROR。

[类型] 查询

[返回列表]


函数调用例程

为配合BPLADLL动态库输出函数的调用流程，方便用户更好、更快的掌握调用动态库函数的方法，提供了Visual Basic 6.0、Visual C++ 6.0、Delphi 7.0、Visual Studio.Net 2003的调用例程，这些例程随同BPLADLL共同发布。
动态库调用例程提供的演示功能包括：端口控制功能，驱动控制功能，公路、水运票面打印功能，状态查询功能，保存文档功能。
演示例程界面如图：

例程功能详细说明：

端口控制功能:
端口选择：可以选择串口、并口、USB口、驱动程序；
端口配置：可以选择设置串口名称、设置串口波特率，选择设置并口地址，输入驱动程序名称，设置端口超时时间；
开启端口：完成对选择端口或驱动程序的打开；
关闭端口：完成对选择端口或驱动程序的关闭。
公路、水运、RFID票面打印功能：
打印票样选择：可以实现公路、水运票样选择；
票面显示：显示选择的公路、水运票样内容；
打印：完成票面打印。
状态查询功能：
打印机状态：状态查询并显示。
保存文档功能：
指令保存到文件test.txt，不悬挂端口发送：选择后指令保存到文件test.txt,检测发送指令内容的正确性。

备注：

 .Net例程运行环境需要安装Microsoft .NET Framework 软件包。


条码支持

--------------------------------------------------------------------------------

［基本概念］
条形码　　　　：宽度不同、反射率不同的条和空按编码规则组合起来表示一定信息的符号；
条形码元素　　：用以表示条形码的条和空，简称元素；
条　　　　　　：条码中反射率较低的元素；
空　　　　　　：条码中反射率较高的元素；
条形码字符　　：表示一个数字，字母及特殊符号的一组条形码元素；
位空　　　　　：位于两个相邻的条形码字符之间，不代表任何信息的空；
单位元素宽度　：窄元素的宽度；
条高　　　　　：条的较长尺寸；
条宽　　　　　：条的较短尺寸；
条码字符集　　：一种条码码制中所给定的数据字符的范围；
离散型条形码　：在条形码符号中，两个相邻的条形码字符之间存在位空的条形码。否则称为连续型条形码。

［条码支持］
BPLA指令集与BPLADLL包括对以下条码的支持

类别 | 名称 | 代号
 |  | 有注释字符 | 无注释字符
一维条码 | 39码 | 0 | 20
 | UPCA码 | 1 | 21
 | UPCE | 2 | 22
 | 交叉25码（无校验字符） | 3 | 23
 | 128码 | 4 | 24
 | EAN13 | 5 | 25
 | EAN8 | 6 | 26
 | HBIC(带校验符的39码) | 7 | 27
 | 库德巴码 | 8 | 28
 | 交叉25码（有校验字符） | 9 | 29
 | 工业25码 | 10 | 20
 | 储运码 | 11 | 31
 | UPC2 | 12 | 32
 | UPC5 | 13 | 33
 | 93码 | 14 | 34
 | POSTNET码 | 15 | 35
 | UCC/EAN码 | 16 | 36
 | 矩阵25码（欧洲标准） | 17 | 37
 | 矩阵25码（日本标准） | 18 | 38
 | 邮电25码（中国） | 19 | 39
二维条码 | MAXICODE | 独立函数，不考虑代号
 | PDF417

[名称] code 3 of 9。
[代号] 有注释字符为0，无注释字符为20。
[描述] 离散型，自校验（不带校验字符），字母数字式码制。
[合法字符] 合法数据为: 0~9,A~Z,$%*+-./ space 共44个，其中*只作为起始终止符，不出现在数据中，即不必输入。
[字符长度] 可变
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] UPCA。
[代号] 有注释字符为1，无注释字符为21。
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 0~9。
[字符长度] 12位。不论用户输入11位或12位，打印机将自动根据前11位计算校验位
[条宽度] 其他条的宽度是窄条的整倍数（2、3、4）

返回条码列表

[名称] UPCE
[代号] 有注释字符为2，无注释字符为22。
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 0~9。
[字符长度] 7位，其中第7位隐含在前6位的奇偶排列中。不论用户输入6位或7位，打印机将自动根据前6位计算校验位
[条宽度] 其他条的宽度 是窄条的整倍数（2、3、4）

返回条码列表

[名称] 交叉25码（无校验）
[代号] 有注释字符为3，无注释字符为23。
[描述] 连续型，自校验（无校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 可变，应为偶数个，当为奇数时，打印机会在数据前端自动添0。
[条宽度] 宽窄条的比率范围是2:1到3:1。

返回条码列表

[名称] 128码
[代号] 有注释字符为4，无注释字符为24。
[描述] 连续型，自校验（有取103模校验字符），全ASCII字符码制。
[合法字符] 全部128 个ASCII 字符。
[字符长度] 可变
[条宽度] 其他条的宽度是窄条的整倍数（2、3、4）。

［规则说明］
128码合法数据为全部ASCII，其中A集包括00~5FH，B集包括20~7FH，C集为双数字集00~99。为避免A集中的00H~1FH的输入不够方便的问题，规定输入采用60H~7FH，即00H~1FH加60H对等转换的方法。
起始符选择：第一个数据字符如果为A,B,C任一个，即采用相应的起始的集合，如果第一字符不是其中之一，将采用默认的B集。
特殊字符输入:采用双字符表示:

输入方法 | A集 | B集 | C集
&A | FNC3 | FNC3 | N/A
&B | FNC2 | FNC2 | N/A
&C | SHIFT | SHIFT | N/A
&D | CODEC | CODEC | N/A
&E | CODEB | FNC4 | CODEB
&F | FNC4 | CODEA | CODEA
&G | FNC1 | FNC1 | FNC1

SHIFT用来在A集和B集之间切换，并只能对其后的一个字符起作用，然后回到原来的集合。
CODEA,CODEB,CODEC用来在A,B,C集中切换，切换后一直有效,直到其条码结束或有另一个切换有效。
&&双字符解释为&。
&后如果跟随除上述字符以外的其它字符X，则分别解释为&和X两个字符。

本算法内部并无最简算法，为保证得到比较简单的编码，推荐使用以下规则：
1) 由于C集可以将2个数字编码成1个码字，所以如果起始处有大于等于2个 或 数据中有大于等于4个连续数字，就可以使用C起始或转移到C集，使数据以C集编码。由于C集只能对偶数个数字编码，所以如果存在奇数个连续数字，如果出现在数据起始处，应将最后一个数字编码到以后的A或B集中。如果出现在数据当中，应将第一个数字编码到前面的A或B集中，而将其后的偶数个数字用C集编码。
2）如果在A集(或B集)中出现一个B集(或A集)符号X，且只有一个，可以采用<SHIFT><X>的编码方法。如果符号超过两个，应采用常用的切换字符的方法，例如：<CODEB><X><X><X>...<CODEA>。
3）128码校验字符打印机内部自动计算。

有关使用128码的使用举例，请参考疑难问题解答

举例说明：
条码信息：ABC0123456789
使用A字符集打印参数设置（条码长）：
state = BPLA_PrintBarcode("&FABC0123456789", 50, 30, 1, 4, 70, 1, 1, "000")

使用字符集转换打印参数设置（条码短）：
state = BPLA_PrintBarcode("&FABC&D0123456789", 50, 30, 1, 4, 70, 1, 1, "000")

返回条码列表

[名称] EAN13码
[代号]
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 13位，不论用户输入12位或13位，打印机将自动根据前12位计算校验位。
[字符长度] 可变
[条宽度] 其他条的宽度是 窄条 的整倍数（2、3、4）。

返回条码列表

[名称] EAN8码
[代号] 有注释字符为6，无注释字符为26。
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 0~9。
[字符长度] 8位，不论用户输入7位或8位，打印机将自动根据前7位计算校验位
[条宽度] 其他条的宽度是窄条的整倍数（2、3、4）。

返回条码列表

[名称] HBIC码
[代号] 有注释字符为7，无注释字符为27。
[描述] code 3 of 9存在43模校验字符的情况可称为HBIC码,离散型，自校验（有取43模校验字符），字母数字式码制。
[合法字符] 合法数据为: 0~9,A~Z,$%*+-./ space 共44个，其中*只作为起始终止符，不出现在数据中，即不必输入
[字符长度] 可变
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] 库德巴码。
[代号] 有注释字符为8，无注释字符为28。
[描述] 连续型，自校验（有取10模校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 可变，长度应为偶数个，当为奇数时，打印机会在数据前端自动添0。
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] 交叉25码（有校验）。
[代号] 有注释字符为9，无注释字符为29。
[描述] 连续型，自校验（有取10模校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 可变，长度应为偶数个，当为奇数时，打印机会在数据前端自动添0。
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] 工业25码。
[代号] 有注释字符为10，无注释字符为30。
[描述] 离散型，自校验（无校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 可变
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] 储运码。
[代号] 有注释字符为11，无注释字符为31。
[描述] 连续型，自校验（有取10模校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 13位
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] UPC2。
[代号] 有注释字符为12，无注释字符为32。
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 2位
[条宽度] 其他条的宽度是 窄条 的整倍数（2、3、4）。

返回条码列表

[名称] UPC5。
[代号] 有注释字符为13，无注释字符为33。
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 5位
[条宽度] 其他条的宽度是窄条的整倍数（2、3、4）。

返回条码列表

[名称] 93码。
[代号] 有注释字符为14，无注释字符为34。
[描述] 连续型，非自校验（无校验字符），字母数字式码制。
[合法字符] 0~9,A~Z,-.$%/+ space共43个，93码为实现全ASCII编码而定义了4个控制字符，其输入方法为a,b,c,d，分别表示93码标准中的圈$, 圈%, 圈/, 圈+ 。
[字符长度] 可变
[条宽度] 其他条的宽度是 窄条 的整倍数（2、3、4）。

返回条码列表

[名称] POSTNET码。
[代号] 有注释字符为15，无注释字符为35。
[描述] 离散型，自校验（无校验字符），数字式码制。
[合法字符] 0-9
[字符长度] 11位
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] UCC/EAN码。
[代号] 有注释字符为16，无注释字符为36。
[描述] 连续型，自校验（有校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 19位
[条宽度] 其他条的宽度是 窄条 的整倍数（2、3、4）。

返回条码列表

[名称] 矩阵25码（欧洲标准）。
[代号] 有注释字符为17，无注释字符为37。
[描述] 离散型，自校验（可以有1 位校验字符）数字式码制。
[合法字符] 0~9。
[字符长度] 可变
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] 矩阵25码（日本标准）。
[代号] 有注释字符为18，无注释字符为38。
[描述] 离散型，自校验（可以有1 位校验字符）数字式码制。
[合法字符] 0~9。
[字符长度] 可变
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] 邮电25码（中国）。
[代号] 有注释字符为19，无注释字符为39。
[描述] 离散型，自校验（无校验字符），数字式码制。
[合法字符] 0-9。
[字符长度] 11 位
[条宽度] 宽窄条的比率范围是2:1到3:1

返回条码列表

[名称] MAXICODE码。
[描述] 二维码
[合法字符] 字母数字。数据部分长度不应超过84 个字符，它由五部分组成：1） 5 个数字的基本邮码；2） 4 个数字的第二邮码；3） 3 个数字的国家代码；4） 3 个数字服务等级；5） 字符串。
[字符长度] 可变
[条宽度] 宽窄条的比率不可调。

返回条码列表

[名称] PDF417码。
[描述] 二维码。
[合法字符] 所有的ASCII 字符。条码数据由六部分组成：1） 数据第1位： ‘F’：非截短类型，‘T’：截短类型。2） 数据第2位： 0~8，校验级别。3） 数据第3、4位： 外观比。2位数字，第一位是分子，第二位是分母。00代表1：2。4） 数据第5、6位： 03~90，行数。5） 数据第7、8位： 01~30，列数。6） 以下为需要编码的数据。
[字符长度] 可变
[条宽度] 宽窄条的比率范围是2:1到3:1


内部ASCII码点阵字体

--------------------------------------------------------------------------------

支持BPLA指令集的打印机内嵌23种ASCII码点阵字体，通过BPLADLL，可以使用这些字体进行版面设置

23种内部字体如下：

[代号]：0
[尺寸]：6点宽 x 10点高
[图示]：

[代号]：1
[尺寸]：9点宽 x 16点高
[图示]：

[代号]：2
[尺寸]：12点宽 x 27点高
[图示]：

[代号]：3
[尺寸]：16点宽 x 35 点高
[图示]：

[代号]：4
[尺寸]：21点宽 x 43点高
[图示]：

[代号]：5
[尺寸]：21点宽 x 59点高
[图示]：

[代号]：6
[尺寸]：36点宽 x 67点高
[图示]：

[代号]：7
[尺寸]：20点宽 x 35点高
[图示]：

[代号]：8
[尺寸]：20点宽 x 31点高
[图示]：

[代号]：9
[尺寸]：5点宽 x 23点高
[图示]：

[代号]：10
[尺寸]：7点宽 x 30点高
[图示]：

[代号]：11
[尺寸]：8点宽 x 36点高
[图示]：

[代号]：12
[尺寸]：10点宽 x 42点高
[图示]：

[代号]：13
[尺寸]：12点宽 x 50点高
[图示]：

[代号]：14
[尺寸]：15点宽 x 64点高
[图示]：

[代号]：15
[尺寸]：25点宽 x 50点高
[图示]：

[代号]：16
[尺寸]：25点宽 x 50点高
[图示]：

[代号]：17
[尺寸]：25点宽 x 50 点高
[图示]：

[代号]：18
[尺寸]：25点宽 x 50 点高
[图示]：

[代号]：19
[尺寸]：25点宽 x 50 点高
[图示]：

[代号]：20
[尺寸]：25点宽 x 50 点高
[图示]：

[代号]：21
[尺寸]：25点宽 x 50 点高
[图示]：

[代号]：22
[尺寸]：25点宽 x 50 点高
[图示]：


问题解答

--------------------------------------------------------------------------------

［问题］在不同的开发环境下如何调用BPLADLL的输出函数？

［解答］我们提供了Visual Basic 6.0、Visual C++ 6.0、Delphi 7.0、Visual Studio.Net 2003的调用例程，这些例程随同BPLADLL共同发布。
如果使用其它开发工具，请参考这些例程中各个函数的调用流程。

［问题］打印机已经通过串口线与计算机连接，为什么调用BPLA_OpenCom函数返回错误？

［解答］在BPLA_OpenCom函数中，打开指定的串口以后，向打印机发送检测串口通讯的指令，如果能够收到正确的反馈值，则返回正确，否则返回错误。因此这个问题可以从以下几方面检查：
1）打印机与计算机之间的接口是否松动？
2）打印机是否处于关机状态？
3）指定的端口名称是否与实际一致？比如，打印机通过COM2与计算机连接, 而函数的第一个参数为”COM1”；
4）函数参数设置与打印机的波特率是否符合？比如，打印机为9600BPS，而函数的第二个参数设置为19200；
5）打印机是否处于暂停状态、错误状态，或者已经进入标签模式下？这时，打印机接收到串口通讯指令，但不能返回信息，函数返回错误。
为了避免这种情况出现，BPLADLL提供了BPLA_OpenComEx函数，此函数没有检测过程。

［问题］打印机已经通过并口线与计算机连接，为什么调用BPLA_OpenLpt函数返回错误？

［解答］请从以下几方面检查：
1）打印机与计算机之间的接口是否松动？
2）打印机是否处于关机状态？
3）计算机是否没有安装并口驱动？安装并口驱动的方法是执行lptdriver目录下的install.exe文件。

［问题］打印机已经通过USB口线与计算机连接，为什么调用BPLA_OpenUsb函数返回错误？

［解答］请从以下几方面检查：
1）打印机与计算机之间的接口是否松动？
2）打印机是否处于关机状态？
3）计算机是否没有安装USB设备驱动程序？USB设备驱动随同打印机驱动程序安装。

［问题］程序控制打印机打印多张，但第一张打印完毕后，指示灯闪烁，无报警，需要按下按键下一张才出来，为什么？

［解答］此时打印机处于撕离或剥离模式下，解决方法是在调用BPLA_SetArea之前，调用BPLA_SetEnd函数，参数大于0，（经验数据：70）。如果遇到的是相反的情况，即需要通过按键或者拿走标签后，下一张标签才打印，则可以将此函数的参数设置为0。

［问题］对于BPLADLL没有封装的指令如何发送？

［解答］BPLADLL释放了BPLA_SendCommand、BPLA_ReceiveInfo、BPLA_SendFile、BPLA_ReceiveFile四个函数用以发送用户定制的数据到打印机及接收打印机返回的数据。具体使用方法，请参考四个函数的说明。

［问题］如何打印128码？

［解答］128码的打印符合一定的技术规范，根据128条码规则，要求输入一些特定的控制字符，这些信息也必须作为信息字符串的一部分，传送到函数中，否则无法正常打印。在此举例说明几个典型128条码的设置方法。
例1:条码信息字符串为"DE34526"，打印位置为（220,30）；使用的旋转角度为0，选择条码类型为4，代表128码，条码高度为70，比例分子为4，比例分母为2，无连续域处理。函数为BPLA_PrintBarcode("DE34526",220,30,1,4,70,4,2,"000");
例2:打印邮政30位数字信息条码
BPLA_PrintBarcode("C012345678901234567890123456789",220,30,4,4,100,4,2,"000");
例3:打印邮政22位数字信息条码
BPLA_PrintBarcode("C0123456789012345678901",220,30,1,4,100,4,2,"000");
例4:打印默认集合（B）信息条码
BPLA_PrintBarcode("0adCDE0111",220,30,1,4,100,4,2,"000");
例5:先用C集打印后转到B集
BPLA_PrintBarcode("C0123&EabdeAD",220,30,1,4,100,4,2,"000");
例6:先用C集打印后转到A集
BPLA_PrintBarcode("C0123&FADCD",220,30,1,4,100,4,2,"000");
例7:先用A集打印后转到B集
BPLA_PrintBarcode("AAD&E12abdeAD",220,30,1,4,100,4,2,"000");
例8:先用A集打印后转到C集
BPLA_PrintBarcode("AAD&D12abdeAD",220,30,1,4,100,4,2,"000");
例9:先用B集打印后转到A集
BPLA_PrintBarcode("AAD&F12abdeAD",220,30,1,4,100,4,2,"000");
例10:先用B集打印后转到C集
BPLA_PrintBarcode("aAD&D102125",220,30,1,4,100,4,2,"000");