npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

lpapi-ble-dd

v1.0.20240715

Published

蓝牙打印接口

Downloads

2

Readme

lpapi-ble-dd

lpapi-ble-dd 是一款基于钉钉小程序自身提供的 BLE 接口和 canvas 绘图所封装的标签编辑及蓝牙打印接口,接口通过 canvas 来按照用户需要进行2D绘图,绘制完毕后将图片内容转换为打印机所支持的指令,然后通过 BLE 将数据发送到打印机,然后开始打印图片。

注意:本接口仅适用于德佟印立方系列标签打印机!

接口包的获取

  1. 通过 npm/yarn 直接下载安装;
npm install lpapi-ble-dd
// 或者
yarn add lpapi-ble-dd
  1. 通过德佟印立方官网官网下载接口包:

    打开德佟印立方官网后,在顶部点击软件下载,然后选择SDK开发包下载,然后点击 蓝牙打印 DingTalk SDK(含API文档)下载即可。;

使用方法

  1. 引入接口实例

1.1 导入接口包

将下载后的接口包解压缩,然后将解压缩后的 lib 目录下的文件复制到路径合适的目录下,eg: "/js_sdk/lpapi-ble-dd/".

1.2 打开 index.axml 文件,创建一个隐藏的画布,用于进行标签的绘制,canvas 的宽高需要在创建打印任务后动态设置。

<canvas id="{{canvasId}}" width="{{labelWidth}}px" height="{{labelHeight}}px" style="position: fixed;left: -999999rpx;top: -999999rpx;" />

1.3 在目标js文件(eg: index.js)中引入接口包,然后创建接口实例。

import { LPAPIFactory } from "/js_sdk/lpapi-ble-dd/index.js";

export default {
    data() {
        return {
            canvasId: "dothan-lpapi-ble",
        };
    },
    onLoad() {
        this.lpapi = LPAPIFactory.getInstance({
            // 如果需要查看打印日志的话,可以在此配置日志显示状态,0表示不显示,4表示显示所有日志信息。
            // showLog: 4,	// 【可选】
            // 设置画布ID,第一步中创建的画布ID,全局唯一
            canvasId: this.canvasId, // 【必须】
        });
        // 搜索蓝牙设备
        this.lpapi.startBleDiscovery({
            // timeout = 0 表示搜索到匹配的打印机后自动停止搜索,不指定表示会一直搜索下去
            timeout: 0,
            deviceFound: (devices) => {
                // 更新打印机列表
            },
        });
    },
};
  1. 根据实际需要创建指定大小的打印任务,开始打印或者预览;
function printQrcode(data, callback) {
    // 标签宽度,单位毫米
    const labelWidth = 30;
    // 标签高度,单位毫米;
    const labelHeight = 30;
    // 标签转转方向,值为:0,90,180,270,默认为0,表示不做任何的旋转处理;
    const orientation = 0;
    // 二维码外边可以适当的留一点边距;
    const margin = 2;
    // 二维码大小

    const api = this.lpapi;
    // 创建指定大小的打印任务,单位毫米
    const jobInfo = api.startJob({
        width: labelWidth, // 【必填】标签宽度
        height: labelHeight, // 【必填】标签高度
        orientation: orientation, // 【可选】旋转方向
        jobName: "#!#preview#!#", // 【可选】 "#!#preview#!#" 和 "#!#transparent#!#" 是两个特殊的打印任务名称,主要供生成预览图片或者调试使用,不会打印,其他任何字符串都会直接打印;
    });
    // 更新画布大小,单位像素
    this.labelWidth = jobInfo.canvas.width;
    this.labelHeight = jobInfo.canvas.height;
    // 注意,在uni模式下更新canvas画布大小后,画布大小不会立即生效,需要等待画布尺寸更新之后在进行后续操作才可以;
    // 此处可以使用 nextTick或者直接启用定时器
    this.$nextTick(() => {
        // 绘制二维码
        api.draw2DQRCode({
            text: "测试测试测试测试测试测试",
            x: margin,
            y: margin,
            width: labelWidth - margin * 2,
            height: labelHeight - margin * 2,
        });
        //
        api.commitJob({
            complete: (resp) => {
                // 执行打印完毕回调函数
                if(resp.statusCode === 0) {
                    console.log("打印成功!");
                } else {
                    console.log("打印失败!");
                }
            },
        });
    });
}

接口介绍

interface InitOptions {
	/** 用于标签绘制的 canvas ID */
    canvasId: string;
	/** 是否显示相关日志信息 */
    showLog?: number|boolean;
}

export interface LPAPIFactory {
	/**
	 * 通过配置信息获取接口实例对象。
	 */
    static getInstance(context: InitOptions): LPAPI;
}

2.1 setSupportPrefixes(models: string|string[])

功能描述

设置搜索、连接的打印机的型号限定。

参数

models: 待搜索的打印机型号列表。 多个打印机型号可以通过字符串数组来指定,也可以通过";"将多个型号拼接成一个字符串来指定。 在 startBleDiscovery 或者 openPrinter 之前执行此方法,可以限定指定的打印机型号。

2.2 startBleDiscovery(opts: object)

功能描述

获取搜索到的打印机列表。

参数

| 属性 |类型 |默认值|必填|说明| | ---------------- |--------|---|----|----| |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 | 蓝牙扫描打开失败|

2.3 openPrinter(opts: object)

功能描述

打开指定名称或型号的打印机。

参数

| 属性 | 类型 |默认值|必填 |说明| | ----- | ------ |----|----|----| |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 回调参数。

2.4 closePrinter()

功能描述

关闭已连接打印机。

2.5 startJob(opts: LPA_JobStartOptions): JobStartResult|undefined

功能描述

创建指定大小的打印任务。

参数[LPA_JobStartOptions]

| 属性 | 类型 |默认值|必填|说明| | ------------- | ------|----|----|----| |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 |当前任务名称 |

2.6 startPrintJob(opts: LPA_JobStartOptions)

功能描述

创建用于打印的打印任务,返回值为 Promise,值为0表示打印任务创建成功,同时打印机也链接成功,在绘制完毕后可直接进行打印。

参数[LPA_JobStartOptions]

| 属性 | 类型 |默认值|必填|说明| | --------- | ------|----|----|----| |width |number | |是|标签宽度(单位:毫米)。| |height |number | |是|标签高度(单位:毫米)。| |orientation|number | 0 |否|标签旋转角度,默认为0,表示不旋转,具体可参考startJob中的 orientation参数描述| |jobName |string | |否|打印任务名称,值可参考startJob中的 jobName 参数描述。| |printerName|string | |否|打印机设备名称,与deviceId二选一,否则无法关联目标打印机| |deviceId |string | |否|打印机设备ID,与printerName二选一,否则无法关联目标打印机| |callback |function| |否|打印任务创建完毕回调函数|

返回值 Promise<LPA_Result>

0 :表示成功; 其他:表示对应的错误代码,具体可参考 LPA_Result 枚举值详情;

2.7 commitJob(options: object): Promise<LPA_JobPrintResult>

功能描述

结束绘制,开始打印绘制内容,如果打印任务是预览任务,则返回预览图片。

参数

options: object

|属性 |类型 |默认值|必填 |说明| | ------------ | ------- |---- |----|----| |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

2.8 setItemOrientation(orientation: number)

功能描述

设置后续绘制对象的默认旋转方向。

参数

orientation: number |值 |说明| |----|----| |0 |不旋转 | |90 |右转90度 | |180 |旋转180度| |270 |左转90度 |

2.9 setItemHorizontalAlignment(alignment: number)

功能描述

设置后续绘制对象的水平对齐方向。

参数

alignment: number |值 |说明| |----|----| |0 |水平居左对齐 | |1 |水平居中对齐 | |2 |水平居右对齐 | |3 |拉伸对齐 |

2.10 setItemVerticalAlignment(alignment: number)

功能描述

设置后续绘制对象的垂直对齐方向。

参数

alignment: number |值 |说明| |----|----| |0 |垂直居上对齐 | |1 |垂直居中对齐 | |2 |垂直居下对齐 | |3 |拉伸对齐 |

2.11 drawText(opts: object)

功能描述

绘制字符串对象。

参数

| 属性 |类型 |默认值|必填|说明| | ----------------- | ----- |---|----|----| |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 | 粗斜体|

2.12 drawBarcode(opts: object)

功能描述

绘制一维码。

参数

| 属性 | 类型 |默认值|必填|说明| | ----------------- | ------ |----|----|----| |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 |

2.13 drawQRCode(opts: object)

功能描述

绘制二维码。

参数

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 |

2.14 drawPDF417(options: object)

功能描述

绘制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| 否 |绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式|

2.15 drawDataMatrix(options: object)

功能描述

绘制 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| 否 |绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式|

2.16 drawLine(opts: object)

功能描述

绘制直线。

参数

| 属性 | 类型 |默认值|必填|说明| | ----------------- | ------ |----|----|----| |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| 否 |绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式|

2.17 drawRectangle(opts: object)

功能描述

绘制矩形。

参数

opts: object

|属性 |类型 |默认值|必填|说明| | ----------------- | ------ | ---- |----|----| |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| 否 |绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式|

2.18 drawEllipse(options: object)

功能描述

绘制矩形。

参数

options: object

| 属性 | 类型 |默认值|必填|说明| | ----------------- | ------ | ----|----|----| |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 | 否 |绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式|

2.19 drawCircle(options: object)

功能描述

绘制正圆形。

参数

options: object

|属性|类型|默认值|必填|说明| | ------ | ------ | ---- |----|----| |x |number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0| |y |number | 0 | 否 | 绘制对象的水平左边位置(单位:毫米),值默认为0| |radius |number | | 是 | 圆半径(单位:毫米)| |lineWidth | number | auto | 否 | 线条宽度 | |fill |boolean |false | 否 | 是否绘制填充矩形|

2.20 drawImage(opts: object): Promise

功能描述

绘制图片资源。

参数

| 属性 | 类型 |默认值|必填|说明| | ----------------- | ------ |----|----|----| |image |Image/string | | 是 |图片对象| |x |number | 0 | 否 |水平坐标位置(单位:毫米)| |y |number | 0 | 否 |垂直坐标位置(单位:毫米)| |width |number | 0 | 否 |图片显示宽度(单位:毫米)| |height |number | 0 | 否 |图片显示高度(单位:毫米)| |orientation | number |auto| 否 |绘制选项的旋转方向,如果未设置,则使用默认旋转方向| |horizontalAlignment| number |auto| 否 |绘制选项的水平对齐方式,如果未设置,则使用默认对齐方式| |verticalAlignment | number |auto| 否 |绘制选项的垂直对齐方式,如果未设置,则使用默认对齐方式|

返回值 Promise<boolean>

如果指定的图片内容为图片的 url 字符串,则需要等待图片异步加载完毕之后才可以进行绘制,否则在结束打印任务的时候,如果图片还未加载完毕,则无法正常显示图片内容。

2.21 drawTable(opts: object)

功能描述

绘制图片资源。

参数

| 属性 | 类型 |默认值|必填 |说明| | ----------------- | ----------- |----|----|-------| |x |number | 0 | 否 |水平坐标位置(单位:毫米)| |y |number | 0 | 否 |垂直坐标位置(单位:毫米)| |width |number |auto| 否 |表格显示宽度(单位:毫米)| |height |number | 0 | 否 |表格显示高度(单位:毫米)| |rows |TableCell[][]| | 是 |表格中的单元格内容,内容是一个二维数组,默认数组的长度表示表格的行数,数组中所有子数组的最大长度表示单元格的列数,单元格内容可参考下列的 TableCell参数详情| |cells |TableCell[] | | 否 |表格中的单元格内容,内容是一个一维数组,作用等同与tableRows。由于cells是个一维数组,所以需要通过rowCountcolumnCount来指定表格的行数和列数。单元格内容可参考下列的 TableCell参数详情。| |rowCount | number |auto| 否 |表格行数,在通过tableRows指定单元格内容的时候,可以根据行数自动计算表格的行数,值默认为单元格的行数| |columnCount | number |auto| 否 |表格的列数,在通过tableRows来指定单元格内容的时候,可以自动计算单元格的列数,值默认为所有行单元格的最大值| |rowHeights | number[] |auto| 否 |表格单元格的行高列表,当对应值大于等于1的时候,单位为毫米,显示的时候会按照给定的大小显示单元格的高度,当值小于1的时候,值表示空间分配系数,单元格的显示高度会根据所有系数的比例来分配表格的剩余空间| |columnWidths | number[] |auto| 否 |表格单元格的列宽列表,当对应值大于等于1的时候,单位为毫米,显示的时候会按照给定的大小显示单元格的宽度,当值小于1的时候,值表示空间分配系数,单元格的显示宽度会根据所有系数的比例来分配表格的剩余空间| |groups | MergeGroup[] |auto| 否 |单元格合并列表。具体可参考下面的 MergeGroup 参数详情。备注:单元格的合并信息也可以通过单元格内容的rowSpancolumnSpan来替代| |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 |需要合并的单元格行数|

2.22 printImage(options: Object): Promise<LPA_JobPrintResult>

功能描述

直接打印图片

参数

| 属性 | 类型 |默认值|必填 |说明| | ----------------- | ---------- |----|----|-------| |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 | |否|接口调用结束的回调函数(调用成功、失败都会执行)|

  • success 回调参数: 参考 commitJob 的回调参数。
  • fail 回调参数: 参考 commitJob 的回调参数。
  • complete 回调参数: 参考 commitJob 的回调参数。

返回值: Promise<LPA_JobPrintResult>

返回值参考 commitJob 的返回值。

2.23 printImageData(options: Object): Promise<LPA_Result>

功能描述

直接打印图片的二进制数据

参数

| 属性 | 类型 |默认值|必填 |说明| | ----------------- | ---------- |----|----|-------| |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详情。

2.24 print(options: Object): Promise<LPA_JobPrintResult>

功能描述

通过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 的返回值。

2.25 printWdfx(options: Object): Promise<LPA_JobPrintResult>

功能描述

解析并打印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 回调函数的描述。

返回值:Promise<LPA_JobPrintResult>

返回值可参考 commitJob 的返回值描述。

2.26 createDrawContext(opts: LPA_CreateContextOptions): DrawContent | undefined

功能描述

根据给定的参数创建用于进行标签绘制的上下文环境。 该接口常用于那些非H5环境,同时不支持离屏Canvas的环境,用户可以通过指定 canvasId或者指定 canvas 对象来创建绘制上下文环境。

参数

| 属性 | 类型 |默认值|必填|说明| | ------------- | ------|----|----|----| |canvas |Canvas | |否|通过 createSelectorQuery 获取到的Canvas对象。| |canvasId |string | |否|目标canvasId|

2.27 setDrawContext(value: DrawContext)

功能描述

如果用户在创建接口实例的时候未指定 Canvas 相关的参数,用户可以通过 createDrawContext 接口来创建绘制上下问环境,创建完毕后再通过本接口来设置接口的绘制上下文,否则后面无法进行正常的标签绘制。

注意:H5环境和支持离屏Canvas的环境不需要该接口