lpapi-ble-wx 是一款基于企业微信 jssdk 所封装的标签编辑及蓝牙打印接口,接口通过 canvas 来绘图标签内容,绘制完毕后将图片内容转换为打印机所支持的指令,然后通过 BLE 将数据发送到打印机,然后开始打印图片。
注意:本接口仅适用于德佟印立方系列标签打印机!
- 通过 npm/yarn:
npm install lpapi-ble-ww 或者 yarn add lpapi-ble-ww
-
通过德佟印立方官网下载接口包:
打开德佟印立方官网后,在顶部点击软件下载,然后选择SDK开发包下载,然后点击 蓝牙打印 WeChat SDK(含API文档)下载即可。
-
方法 1: 在VUE等框架项目中使用lpapi接口包:
在项目中通过 npm install lpapi-ble-ww 安装接口包后,直接通过 import 方式引入 LPAPIFactory,然后通过LPAPIFactory.getInstance()来获取接口实例;
//
import { LPAPIFactory } from "lpapi-ble-ww";
mounted() {
this.api = LPAPIFactory.getInstance();
}
- 方法 2:直接在html中引入打印接口:
<!-- index.html -->
<html lang="en">
<head>
<!-- 添加企业微信 jssdk 的依赖 -->
<script src="https://wwcdn.weixin.qq.com/node/open/js/wecom-jssdk-1.3.1.js"></script>
<!-- 添加lpapi接口api -->
<script src="/js/lpapi-ble-ww.umd.js"></script>
</head>
</html>
// index.js
var api = undefined;
var bleDevice = undefined;
//
window.onload = function () {
// 获取api实例,引入 接口api后,会自动添加全局变量 LPAPI,然后通过 LPAPI中的 LPAPIFactory来获取接口实例。
api = LPAPI.LPAPIFactory.getInstance();
// 进行企业微信认证
ww.register({
...
});
// 认证完毕后可根据需要搜索打印机
setTimeout(() => {
api.startBleDiscovery({
// 0:表示搜索到设备后,立即停止搜索。
timeout: 0,
deviceFound: (devices) => {
// 搜索到设备,刷新设备列表
bleDevice = devices[0];
},
});
}, 1000);
}
function printTest() {
// 创建打印任务
api.startPrintJob({
// 设置标签的宽度
width: 40,
// 设置标签的高度
height: 40,
// 设置打印机设备ID,打印模式下如果没有设置设备ID,则无法打印
deviceId: bleDevice.deviceId,
}).then((resp) => {
// 状态码不为0表示打印机链接失败
if(resp.statusCode !== 0) {
return false;
}
// 开始绘制标签内容
api.draw2DQRCode({
text: "测试",
x: 5,
y: 5,
width: 30,
});
// 绘制完毕后,提交打印任务,开始打印
return api.commitJob().then((resp) => {
// 状态码为0 表示打印成功
return resp.statusCode === 0;
});
});
}
备注: 具体使用方法参考官方 demo;
interface InitOptions {
/** 是否显示相关日志信息 */
logLevel?: number;
}
interface LPAPIFactory {
/**
* 通过配置信息获取接口实例对象。
*/
static getInstance(context: InitOptions): LPAPI;
}
设置搜索、连接的打印机的型号限定。
models: 待搜索的打印机型号列表。 多个打印机型号可以通过字符串数组来指定,也可以通过";"将多个型号拼接成一个字符串来指定。 在 startBleDiscovery 或者 openPrinter 之前执行此方法,可以限定指定的打印机型号。
获取搜索到的打印机列表。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
models | string | 否 | 链接的目标打印机,不指定会自动搜索打印机 | |
timeout | number | 否 | 单位毫秒。打印机搜索超时时间,0:表示搜索到目标设备后立即停止搜索,大于零表示指定超时时间到了之后自动停止搜索,不指定表示不会自动停止搜索,需要通过 stopBleDiscovery来停止搜索。 | |
interval | number | 否 | 单位毫秒,搜索到设备后,设备上报(回调)间隔 | |
deviceFound | function | 否 | 搜索到蓝牙设备时的回调函数 | |
adapterStateChange | function | 否 | 蓝牙搜索状态变化时的回调函数 | |
success | function | 否 | 蓝牙搜索功能启动成功时的回调函数 | |
fail | function | 否 | 蓝牙搜索功能启动失败,或者扫描停止时的回调函数 | |
complete | function | 否 | 蓝牙设备启动成功、失败、停止、检测到设备等时候的回调函数 |
- deviceFound: (devices: LPA_BleDevice[]) => void 回调参数
LPA_BleDevice
属性 | 类型 | 说明 |
---|---|---|
name | string | 设备名称 |
deviceId | string | 设备ID |
RSSI | string | 设备信号强度 |
- adapterStateChange: (res: Object) => void 回调参数
object res
属性 | 类型 | 说明 |
---|---|---|
discovering | boolean | 设备搜索状态 |
- 回调参数 LPA_Response
属性 | 类型 | 说明 |
---|---|---|
statusCode | number | 搜索结果状态码,0表示成功 |
resultInfo | BluetoothDevice[] | 蓝牙设备列表 |
resultInfo[i].name | string | 设备名称 |
resultInfo[i].deviceId | string | 设备ID |
resultInfo[i].RSSI | string | 设备信号强度 |
- 回调结果状态码
状态码 | 说明 |
---|---|
0 | 蓝牙扫描启动成功 |
-1 | 检测到蓝牙设备 |
1 | 蓝牙搜索已停止(超时时间到或者通过stopBleDiscovery停止) |
2 | 蓝牙适配器打开失败 |
3 | 蓝牙扫描打开失败 |
打开指定名称或型号的打印机。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
name | string | 否 | 打印机名称,如果未指定打印机名称,链接缓存的打印机或者自动搜索打印机 | |
deviceId | string | 否 | 打印机设备ID | |
success | function | 否 | 接口调用成功回调函数 | |
fail | function | 否 | 接口调用失败回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
- LPA_Result 状态码:
属性 | 枚举值 | 说明 |
---|---|---|
-1 | ASYNC_WAIT | 异步等待中 |
0x00 | OK | 打印成功 |
0x01 | ERROR_PARAM | 参数错误 |
0x02 | ERROR_NO_PRINTER | 未检测到打印机或者未指定打印机 |
0x03 | ERROR_DISCONNECTED | 打印机未连接 |
0x04 | ERROR_CONNECT_FAILED | 打印机链接失败 |
0x05 | ERROR_START_NOTIFICATION | 数据Notify特征值启动失败 |
0x06 | ERROR_DATA_SEND_ERROR | 数据发送失败 |
0x07 | ERROR_DATA_RECEIVE_ERROR | 数据接收异常,打印机无响应 |
0x08 | ERROR_IS_PRINTING | 打印机正在打印过程中不能打印其他标签 |
0x09 | ERROR_RESPONSE_TIMEOUT | 指令发送响应超时 |
0x10 | ERROR_JOB_CREATE | 打印任务创建失败 |
0x11 | ERROR_JOB_CANCELED | 打印任务被取消 |
0x12 | ERROR_GET_IMAGE_DATA | 打印数据获取失败 |
0x20 | ERROR_OTHER | 其他未知异常 |
- complete 回调函数: (result: Object) => void
属性 | 类型 | 说明 |
---|---|---|
statusCode | LPA_Result | 链接结果状态码,0:表示成功,其他可参考 LPA_Result 枚举详情 |
resultInfo | string | 当链接失败的时候会显示错误信息 |
resultInfo.name | string | 链接成功时的打印机名称 |
resultInfo.deviceId | string | 链接成功时的打印机设备ID |
resultInfo.serviceId | string | 目标打印机服务ID |
resultInfo.printerDPI | number | 打印机打印头分辨率 |
resultInfo.printerWidth | number | 打印机打印头宽度 |
resultINfo.hardwareFlags | number | 打印机硬件标志位 |
resultInfo.softwareFlags | number | 打印机软件标志位 |
-
success 回调函数:(result: Object) => void 回调参数参考 complete 回调,当打印机链接成功的时候,属性 statusCode 为0;
-
fail 回调函数:(result: Object) => void 回调参数参考 complete 回调,当打印机链接失败的时候,属性 statusCode 不为0,具体可参考 LPA_Result。
Promise<LPA_Response<string|Object>> 返回值类型可参考 complete 回调参数。
关闭已连接打印机。
创建指定大小的打印任务。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
width | number | 是 | 标签宽度(单位:毫米)。 | |
height | number | 是 | 标签高度(单位:毫米)。 | |
orientation | number | 0 | 否 | 标签旋转角度,默认为0,表示不旋转,具体可参考下面的 orientation参数描述 |
jobName | string | 否 | 打印任务名称,值可参考下面的 jobName 参数描述。 | |
dpi | number | 否 | 打印任务的分辨率,如果打印机已连接,则使用打印机的分辨率,如果打印机未连接则使用上次连接过的打印机的分辨率,否则使用默认分辨率203 | |
backgroundColor | string | 否 | 预览任务的背景色,只有当打印任务为预览任务的时候有效 | |
backgroundImage | Image | 否 | 预览任务的背景色,只有当打印任务为预览任务的时候有效 |
- jobName参数描述
值 | 描述 |
---|---|
#!#prev | 当打印任务名称以该字符串开头的时候,当前打印任务不参与打印,最终会生成白色底色的预览图片 |
#!#trans | 当打印任务名称以该字符串开头的时候,当前打印任务不参与打印,最终会生成透明底色的预览图片 |
其他 | 在打印机链接成功的情况下直接打印当前打印任务,否则返回错误 |
- orientation参数描述
旋转方向 | 描述 |
---|---|
0 | 不旋转 |
90 | 右转90度 |
180 | 旋转180度 |
270 | 左转90度 |
- 如果返回值为空: 表示任务创建失败;
- 如果返回值非空:表示任务创建成功,成功时返回值内容的具体信息如下:
属性 | 类型 | 说明 |
---|---|---|
canvas | Canvas | 用于绘制标签内容的Canvas对象 |
context | RendingContext | 目标Canvas的绘制上下文环境 |
isPreview | boolean | 当前任务是不是预览任务 |
width | number | 标签的宽度,单位毫米 |
height | number | 标签的高度,单位毫米 |
jobName | string | 当前任务名称 |
创建用于打印的打印任务,返回值为 Promise,值为0表示打印任务创建成功,同时打印机也链接成功,在绘制完毕后可直接进行打印。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
width | number | 是 | 标签宽度(单位:毫米)。 | |
height | number | 是 | 标签高度(单位:毫米)。 | |
orientation | number | 0 | 否 | 标签旋转角度,默认为0,表示不旋转,具体可参考startJob中的 orientation参数描述 |
jobName | string | 否 | 打印任务名称,值可参考startJob中的 jobName 参数描述。 | |
printerName | string | 否 | 打印机设备名称,与deviceId二选一,否则无法关联目标打印机 | |
deviceId | string | 否 | 打印机设备ID,与printerName二选一,否则无法关联目标打印机 | |
callback | function | 否 | 打印任务创建完毕回调函数 |
0 :表示成功; 其他:表示对应的错误代码,具体可参考 LPA_Result 枚举值详情;
结束绘制,开始打印绘制内容,如果打印任务是预览任务,则返回预览图片。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
printDarkness | number | 255 | 否 | 打印浓度 |
printSpeed | number | 255 | 否 | 打印速度 |
gapType | number | 255 | 否 | 纸张类型 |
gapLength | number | auto | 否 | 纸张间隔长度 |
threshold | boolean | 192 | 否 | 灰度阈值 |
success | function | 否 | 接口调用成功回调函数 | |
fail | function | 否 | 接口调用失败回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
- 打印浓度:darkness
值 | 说明 |
---|---|
255 | 随打印机设置 |
6 | 正常 |
10 | 较浓 |
15 | 最浓 |
- 打印速度:speed
值 | 说明 |
---|---|
255 | 随打印机设置 |
1 | 最慢 |
2 | 较慢 |
3 | 正常 |
4 | 较快 |
5 | 最快 |
- 纸张类型:gapType
值 | 说明 |
---|---|
255 | 随打印机设置 |
0 | 连续纸 |
1 | 定位孔 |
2 | 间隙纸 |
3 | 黑标纸 |
- printable 状态
状态码 | 打印机状态描述 |
---|---|
0 | 当前是可以打印的 |
1 | 当前正在打印 |
2 | 当前正在转动马达 |
10 | 当前没有打印任务 |
11 | 有打印任务,但是页面数据还没有接收完全 |
12 | 当前打印任务被取消 |
30 | 打印电压太低了 |
31 | 打印电压太高了 |
32 | 没有检测到打印头 |
33 | 打印头温度太高了 |
34 | 打印机盖子打开了 |
35 | 未检测到纸张 |
36 | 碳带盒未锁紧 |
37 | 未检测到碳带 |
38 | 不匹配的碳带 |
39 | 环境温度过低 |
40 | 用完的碳带 |
41 | 用完的色带 |
50 | 标签盒未锁紧 |
- LPA_PagePrintResult 属性
属性 | 类型 | 说明 |
---|---|---|
statusCode | LPA_Result | 链接结果状态码,0:表示成功,其他参考 LPA_Result 详情 |
dataUrl | string | 返回的BASE64格式的预览图片 |
imageData | ImageData | 通过canvas获取到的图片二进制数据对象,预览模式下该属性为空 |
canvas | Canvas | 用于进行标签绘制的canvas对象 |
context | RendingContext2D | canvas绘制上下文环境 |
printPages | number | 当前打印任务的打印页数,通常为1 |
pageIndex | number | 在整个打印任务中,当前页的索引,从0开始 |
printData | Uint8Array | 在action为0x01的时候,返回的二进制打印数据 |
- complete 回调函数:(result: LPA_JobPrintResult) => void 回调参数 statusCode 为 0 表示打印成功,否则表示打印失败,回调参数LPA_JobPrintResult描述如下:
属性 | 类型 | 说明 |
---|---|---|
statusCode | LPA_Result | 链接结果状态码,0:表示成功,其他参考 LPA_Result 详情 |
printable | number | 打印失败时候的打印机状态,值可参考 printable |
pages | LPA_PagePrintResult[] | 打印任务中每一张标签的打印结果详情,具体可参考LPA_PagePrintResult |
previewData | string[] | 生成的 base64 图片列表,供预览。在进行多页打印的时候会返回所有页的预览信息 |
printData | Uint8Array[] | 供打印的十六进制指令集和,该功能暂未实现 |
dataUrls | string[] | 等同于参数 previewData |
- success 回调函数:(result: LPA_JobPrintResult) => void 打印成功,具体参数描述参考 complete回调。
- fail 失败回调函数:(result: LPA_JobPrintResult) => void 打印失败,statusCode 表示对应的错误代码,具体可参考 LPA_Result.
Promise<LPA_JobPrintResult>
返回值内容可参考回调函数 complete。
设置后续绘制对象的默认旋转方向。
orientation: number
值 | 说明 |
---|---|
0 | 不旋转 |
90 | 右转90度 |
180 | 旋转180度 |
270 | 左转90度 |
设置后续绘制对象的水平对齐方向。
alignment: number
值 | 说明 |
---|---|
0 | 水平居左对齐 |
1 | 水平居中对齐 |
2 | 水平居右对齐 |
3 | 拉伸对齐 |
设置后续绘制对象的垂直对齐方向。
alignment: number
值 | 说明 |
---|---|
0 | 垂直居上对齐 |
1 | 垂直居中对齐 |
2 | 垂直居下对齐 |
3 | 拉伸对齐 |
绘制字符串对象。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 要绘制的目标字符串 | |
fontHeight | number | 是 | 字体高度,单位:毫米 | |
x | number | 0 | 否 | 水平坐标位置,默认为0,单位:毫米 |
y | number | 0 | 否 | 垂直坐标位置,默认为0,单位:毫米 |
width | number | 0 | 否 | 显示区域的宽度,默认为0,表示当行显示,单位:毫米 |
height | number | 0 | 否 | 显示区域的高度,默认为0,表示自适应高度,单位:毫米 |
fontStyle | number | 否 | 字体样式,默认为0,表示常规字体,具体可参考下面的字体样式说明 | |
fontName | string | 否 | 字体名称 | |
autoReturn | number | 1 | 否 | 默认为1,表示按字符换行,0表示不换行 |
lineSpace | number | 否 | 行间距 | |
charSpace | number | 否 | 字符间距 | |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
- 字体样式:fontStyle
值 | 说明 |
---|---|
0 | 常规字体 |
1 | 粗体 |
2 | 斜体 |
3 | 粗斜体 |
绘制一维码。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 一维码内容 | |
x | number | 否 | 水平坐标位置(单位:毫米) | |
y | number | 否 | 垂直坐标位置(单位:毫米) | |
width | number | 否 | 一维码宽度(单位:毫米),默认为0,表示宽度自适应 | |
height | number | 否 | 一维码高度(单位:毫米),默认为0,表示高度自适应 | |
textHeight | number | 否 | 一维码中字符串的高度(单位:毫米),默认自适应 | |
barcodeType | number | 否 | ||
textAlign | number | 1 | 否 | 一维码中字符串的对齐方式,默认居中对齐 |
textFlag | number | 2 | 否 | 一维码中字符串的位置, 0:表示不显示字符串,1:表示字符串在上面,2:表示字符串在下面。 |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
- 一维码类型:barcodeType
类型 | 说明 |
---|---|
20 | UPCA |
21 | UPCE |
22 | EAN13 |
23 | EAN8 |
24 | CODE39 |
25 | ITF25 |
26 | CODABAR |
27 | CODE93 |
28 | CODE128 |
29 | ISBN |
30 | ECODE39 |
31 | ITF14 |
32 | ChinaPost |
33 | Matrix25 |
34 | Industrial25 |
60 | AUTO = 60 |
绘制二维码。
opts: object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 二维码内容 | |
x | number | 0 | 否 | 水平坐标位置(单位:毫米) |
y | number | 0 | 否 | 垂直坐标位置(单位:毫米) |
width | number | 0 | 否 | 显示宽度(单位:毫米) |
height | number | 0 | 否 | 显示高度(单位:毫米) |
eccLevel | number | 0 | 否 | 二维码纠错级别 |
version | number | 否 | 二维码版本号,默认根据内容自动选择 | |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
- QRCode二维码纠错级别:eccLevel
纠错级别 | 描述 |
---|---|
0 | Low |
1 | Middle |
2 | Quality |
3 | High |
绘制PDF417二维码。
options: object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 二维码内容 | |
x | number | 0 | 否 | 水平坐标位置(单位:毫米) |
y | number | 0 | 否 | 垂直坐标位置(单位:毫米) |
width | number | 0 | 否 | 显示宽度(单位:毫米) |
height | number | 0 | 否 | 显示高度(单位:毫米) |
eccLevel | number | 0 | 否 | 二维码纠错级别 |
cols | number | 否 | 横向多少个模块(不包括左右起止符和层指示符,所以最小为1,加上起止符和层指示符,最小为5) | |
aspectratio | number | 否 | 二维码宽高比,当未指定二维码宽度个数的时候,通过宽高比来自定计算二维码的宽和高,不指定的话,默认为3 | |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
绘制 DataMatrix 二维码。
options: object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
text | string | 是 | 二维码内容 | |
x | number | 0 | 否 | 水平坐标位置(单位:毫米) |
y | number | 0 | 否 | 垂直坐标位置(单位:毫米) |
width | number | 0 | 否 | 显示宽度(单位:毫米) |
height | number | 0 | 否 | 显示高度(单位:毫米) |
codeShape | number | 0 | 否 | DM码形状,0:根据内容与宽高,自动选择形状,1:使用方形码,2:使用矩形码 |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
绘制直线。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
x1 | number | 0 | 否 | 起点的水平坐标位置(单位:毫米) |
y1 | number | 0 | 否 | 起点的垂直坐标位置(单位:毫米) |
x2 | number | x1 | 否 | 终点的水平坐标位置(单位:毫米) |
y2 | number | y1 | 否 | 终点的垂直坐标位置(单位:毫米) |
lineWidth | number | 0.4 | 否 | 起点+终点模式下的线条宽度(单位:毫米) |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
绘制矩形。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
x | number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0 |
y | number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0 |
width | number | 是 | 绘制对象的水宽度(单位:毫米) | |
height | number | 是 | 绘制对象的水高度(单位:毫米) | |
lineWidth | number | auto | 否 | 线条宽度 |
cornerWidth | number | 否 | 绘制圆角矩形时的圆角半径 | |
cornerHeight | number | 否 | 绘制圆角矩形时的圆角半径 | |
fill | boolean | false | 否 | 是否绘制填充矩形 |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
绘制矩形。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
x | number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0 |
y | number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0 |
width | number | 是 | 绘制对象的水宽度(单位:毫米) | |
height | number | 是 | 绘制对象的水高度(单位:毫米) | |
lineWidth | number | auto | 否 | 线条宽度 |
fill | boolean | false | 否 | 是否绘制填充矩形 |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
绘制正圆形。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
x | number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0 |
y | number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0 |
radius | number | 是 | 圆半径(单位:毫米) | |
lineWidth | number | auto | 否 | 线条宽度 |
fill | boolean | false | 否 | 是否绘制填充矩形 |
绘制图片资源。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
image | Image/string | 是 | 图片对象 | |
x | number | 0 | 否 | 水平坐标位置(单位:毫米) |
y | number | 0 | 否 | 垂直坐标位置(单位:毫米) |
width | number | 0 | 否 | 图片显示宽度(单位:毫米) |
height | number | 0 | 否 | 图片显示高度(单位:毫米) |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
如果指定的图片内容为图片的 url 字符串,则需要等待图片异步加载完毕之后才可以进行绘制,否则在结束打印任务的时候,如果图片还未加载完毕,则无法正常显示图片内容。
绘制图片资源。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
x | number | 0 | 否 | 水平坐标位置(单位:毫米) |
y | number | 0 | 否 | 垂直坐标位置(单位:毫米) |
width | number | auto | 否 | 表格显示宽度(单位:毫米) |
height | number | 0 | 否 | 表格显示高度(单位:毫米) |
rows | TableCell[][] | 是 | 表格中的单元格内容,内容是一个二维数组,默认数组的长度表示表格的行数,数组中所有子数组的最大长度表示单元格的列数,单元格内容可参考下列的 TableCell参数详情 | |
cells | TableCell[] | 否 | 表格中的单元格内容,内容是一个一维数组,作用等同与tableRows。由于cells是个一维数组,所以需要通过rowCount和columnCount来指定表格的行数和列数。单元格内容可参考下列的 TableCell参数详情。 | |
rowCount | number | auto | 否 | 表格行数,在通过tableRows指定单元格内容的时候,可以根据行数自动计算表格的行数,值默认为单元格的行数 |
columnCount | number | auto | 否 | 表格的列数,在通过tableRows来指定单元格内容的时候,可以自动计算单元格的列数,值默认为所有行单元格的最大值 |
rowHeights | number[] | auto | 否 | 表格单元格的行高列表,当对应值大于等于1的时候,单位为毫米,显示的时候会按照给定的大小显示单元格的高度,当值小于1的时候,值表示空间分配系数,单元格的显示高度会根据所有系数的比例来分配表格的剩余空间 |
columnWidths | number[] | auto | 否 | 表格单元格的列宽列表,当对应值大于等于1的时候,单位为毫米,显示的时候会按照给定的大小显示单元格的宽度,当值小于1的时候,值表示空间分配系数,单元格的显示宽度会根据所有系数的比例来分配表格的剩余空间 |
groups | MergeGroup[] | auto | 否 | 单元格合并列表。具体可参考下面的 MergeGroup 参数详情。备注:单元格的合并信息也可以通过单元格内容的rowSpan与columnSpan来替代 |
orientation | number | auto | 否 | 绘制选项的旋转方向,如果未设置,则使用默认旋转方向 |
horizontalAlignment | number | auto | 否 | 绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式 |
verticalAlignment | number | auto | 否 | 绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式 |
- TableCell参数详情:
备注:TableCell可为字符串,如果为字符串,则表示当前单元格内容为字符串。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
rowSpan | number | null | 否 | 合并单元格的行数,不指定表示不进行单元格合并处理 |
columnSpan | number | null | 否 | 合并单元格的列数,不指定表示不进行单元格合并处理 |
type | DrawType | 是 | 单元格类型,具体可参考 print()接口中的 DrawType 参数详情 | |
其他 | any | 其他参数可参考具体的绘制接口 |
- MergeGroup 参数详情:
备注:在实际使用中单元格的合并信息也可以通过具体某个单元格的 rowSpan和columnSpan来指定单元格的合并信息,效果等同于通过 group 来指定单元格合并信息。
属性 | 类型 | 说明 |
---|---|---|
x | number | 待合并单元格的列索引 |
y | number | 待合并单元格的行索引 |
width | number | 需要合并的单元格列数 |
height | number | 需要合并的单元格行数 |
直接打印图片
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
image | Image/string | 是 | Image图片实例对象或者BASE64字符串,再或者图片URL路径 | |
width | number | auto | 否 | 图片的打印宽度,单位毫米。(不指定的情况下默认为图片的实际宽度,单位是像素) |
height | number | 0 | 否 | 图片的打印高度,单位毫米。(不指定的情况下默认为图片的实际高度,单位是像素) |
orientation | number | 0 | 否 | 打印任务旋转角度 |
jobName | string | 0 | 否 | 打印任务名称 |
sx | number | auto | 否 | 图片的剪切位置(单位:像素) |
sy | number | auto | 否 | 图片的剪切位置(单位:像素) |
swidth | number | auto | 否 | 原始图片中需要打印的宽度(单位:像素) |
sheight | number | auto | 否 | 原始图片中需要打印的高度(单位:像素) |
threshold | number | auto | 否 | 图片灰度转换阈值 |
copies | number | auto | 否 | 打印份数 |
success | function | 否 | 接口调用成功回调函数 | |
fail | function | 否 | 接口调用失败回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
返回值参考 commitJob 的返回值。
直接打印图片的二进制数据
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
imageData | ImageData | 是 | ImageData格式的二进制打印数据 | |
data | ArrayBuffer/string | null | 否 | ArrayBuffer格式的图片二进制数据,或者图片二进制数据对应的十六进制字符串 |
width | number | null | 否 | 如果需要通过 data 来指定图片信息,则该参数表示图片的像素宽度 |
height | number | null | 否 | 如果需要通过 data 来指定图片信息,则该参数表示图片的像素高度 |
orientation | number | 0 | 否 | 打印任务旋转角度 |
gapType | number | 0 | 否 | 打印纸张类型 |
printDarkness | number | auto | 否 | 打印浓度 |
printSpeed | number | auto | 否 | 打印速度 |
threshold | number | auto | 否 | 图片灰度转换阈值 |
printAlignment | number | auto | 否 | 打印对齐方式,值参考下列的printAlignment参数详情 |
success | function | null | 否 | 接口调用成功回调函数 |
fail | function | null | 否 | 接口调用失败回调函数 |
complete | function | null | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
- printAlignment 参数详情:
printAlignment | 说明 |
---|---|
0x0000 | 当打印任务宽度超过打印机打印头宽度的时候靠右打印 |
0x0200 | 当打印任务宽度超过打印机打印头宽度的时候居中打印 |
0x0400 | 当打印任务宽度超过打印机打印头宽度的时候靠左打印 |
-
success 回调:() => void; 打印成功回调函数。
-
fail回调: (result: LPA_Result) => void; 打印失败回调函数,参数result表示错误代码,具体可参考 LPA_Result。
-
complete回调:(result: LPA_Result) => void; 打印完毕回调函数,参数result表示打印结果状态吗,0表示成功,其他表示失败,具体可参考 LPA_Result 详情。
-
返回值:Promise<LPA_Result> 0: 表示成功, 其他:参考LPA_Result详情。
通过JSON方式配置所有打印任务相关信息
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
jobInfo | IJobInfo | 是 | 打印任务相关参数 | |
printerInfo | IPrinterInfo | null | 否 | 打印机相关参数 |
jobPages | DrawItemOptions[][] | null | 否 | 打印页面数组,绘制信息的二维码数组 |
jobPage | DrawItemOptions[] | null | 否 | 单张标签中的绘制选项数组,用于处理只有一张标签的情况,该参数与jobPages二选一,其中一个必须有值,否则为无效打印任务 |
jobArguments | Record<string,any>[] | null | 否 | 打印参数列表,在批量打印的情况下,该参数可以配置批量打印的数据列表,可以通过 jobPage中绘制内容的 columnName 属性来关联 Record中的key来实现批量打印的功能 |
onJobCreated | (res: Object) => void | null | 否 | 打印任务创建完毕时的回调函数,该参数常用于 Uni 开发环境中,用于实时更新画布大小 |
onPageComplete | (res: Object) => void | null | 否 | 打印页面处理完毕时的回调函数 |
onJobComplete | (res: Object) => void | null | 否 | 所有打印页面处理完毕时的回调函数 |
- IJobInfo:打印任务参数详情
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
jobWidth | number | 是 | 打印任务宽度,单位毫米 | |
jobHeight | number | 是 | 打印任务高度,单位毫米 | |
orientation | number | 0 | 否 | 打印任务旋转角度,值可参考startJob接口中的 orientation参数详情 |
jobName | string | null | 否 | 打印任务名称,值可参考startJob中的jobName参数详情 |
gapType | number | 255 | 否 | 打印纸张类型,默认随打印机设置 |
printDarkness | number | 255 | 否 | 打印浓度,默认随打印机设置 |
printSpeed | number | 255 | 否 | 打印速度,默认随打印机设置 |
threshold | number | 192 | 否 | 图片灰度转换阈值 |
- IPrinterInfo:打印机参数详情
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
printerName | string | null | 否 | 打印机名称 |
deviceId | string | null | 否 | 打印机设备ID |
printerDPI | number | null | 否 | 打印机分辨率 |
- DrawItemOptions:页面绘制内容参数详情
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
type | DrawType | null | 否 | 打印机名称 |
其他 | any | null | 否 | 具体绘制参数参考对应的draw函数 |
- DrawType: 绘制类型参数详情
type | 说明 |
---|---|
text | 绘制文本内容 |
barcode | 绘制一维码内容 |
qrcode | 绘制二维码内容 |
pdf417 | 绘制PDF417二维码内容 |
dataMatrix | 绘制DataMatrix二维码内容 |
image | 绘制图片内容 |
rect | 绘制矩形对象 |
ellipse | 绘制椭圆对象 |
line | 绘制直线对象 |
table | 绘制表格对象 |
arcText | 绘制弧形字符串 |
- onJobCreated回调函数:(result: Object) => Promise 打印任务创建成功时的回调函数。
- onPageComplete回调函数: (result: LPA_PagePrintResult) => void 在进行多页打印的时候,每打印完一张标签,就会触发该回调函数的调用,用户可以在该回调函数中展示打印进度,或者提前进行标签的预览处理。
属性 | 类型 | 说明 |
---|---|---|
statusCode | LPA_Result | 页面打印/预览结果状态码,0表示成功,其他表示失败,具体错误代码参考 LPA_Result 详情 |
dataUrl | string | 生成的预览图片url链接或者BASE64字符串 |
imageData | ImageData | 生成的用于打印的ImageData格式的图片二进制数据 |
canvas | Canvas | 用于绘制标签的Canvas对象 |
context | RenderingContext | 用于绘制标签的Canvas上下文环境 |
返回值可参考 commitJob 的返回值。
解析并打印wdfx格式的字符串
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
content | string | 是 | wdfx文件内容字符串 | |
jobInfo | IJobInfo | 是 | 参考 print()接口描述 | |
printerInfo | IPrinterInfo | null | 否 | 参考 print()接口描述 |
jobPages | DrawItemOptions[][] | null | 否 | 参考 print()接口描述 |
jobPage | DrawItemOptions[] | null | 否 | 参考 print()接口描述 |
jobArguments | Record<string, any>[] | null | 否 | 参考 print()接口描述 |
onJobCreated | (res: Object) => void | null | 否 | 参考 print()接口描述 |
onPageComplete | (res: Object) => void | null | 否 | 参考 print()接口描述 |
onJobComplete | (res: Object) => void | null | 否 | 参考 print()接口描述 |
doc | Document | 否 | 在一些特殊的环境下,譬如Uni环境下,DOMParser无法直接使用,此时可以将wdfx字符串解析后传给底层,让底层去解析处理 | |
domParser | DOMParser | 否 | 在一些特殊的环境下,譬如Uni环境下,默认的DOMParser无法使用,此时就需要用户引入第三方的DOMParser来解析wdfx内容 |
- onPageComplete回调函数: (result: LPA_PagePrintResult) => void 参考 print接口的 onPageComplete 回调函数的描述。
返回值可参考 commitJob 的返回值描述。