更新记录

1.0.7(2024-01-05)

  1. 增加打印浓度、打印速度等参数设置的功能;
  2. 增加打印任务队列的功能;
  3. 多平台打印适配及测试;
  4. 修复了之前版本中测试出来的一些bug;

1.0.6(2023-12-22)

  1. 钉钉小程序适配;
  2. 打印相关接口优化完善;

1.0.5(2023-12-21)

  1. 钉钉小程序适配;
  2. 微信小程序、支付宝小程序新版 canvas 适配;
  3. 解决了字间距无效的问题;
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue × 2.9.1 10.1.18 × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
6.0.0 × 3.25 ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

lpapi-ble

lpapi-ble 是canvas绘图以及uni自带ble接口进行数据传输的标签编辑及打印接口,通过canvas绘图实现所见即所得的标签打印功能。

接口包的获取

  1. 通过npm/yarn 直接下载安装;
npm install lpapi-ble-uni
// 或者
yarn add lpapi-ble-uni
  1. 打开 uni-app 插件市场,搜索 "lpapi-ble",搜索到并打开进入后,根据实际需要点击 "购买"(免费),或者"下载插件并导入HBuilderX";

使用方法

  1. 引入接口实例

1.1 通过插件市场

  1. 在vue文件中创建一个隐藏的 canvas 组件,canvas的宽高需要动态指定。
<canvas class="canvas" 
        :id="canvasId" 
        :canvas-id="canvasId"
        :style="{width: labelWidth + 'px', height: labelHeight + 'px'}"
        style="position: fixed;left: -999999rpx;top: -999999rpx;" />
  1. 初始化接口实例(初始化之后才可以正常使用);
// 如果是在cli模式下通过 npm或者yarn安装的插件,则通过如下方式引入接口:
import { LPAPIFactory } from "lpapi-ble-uni";
// 如果是通过插件市场安装的插件,则通本地插件路径导入插件;
import { LPAPIFactory } from "@/uni_modules/DothanTech-LPAPI-BLE/js_sdk/index.js";

export default {
    data() {
        return {
            canvasId: "dothan-lpapi-ble"
        }
    },
    onLoad() {
        this.lpapi = LPAPIFactory.getInstance({
            // 如果需要查看打印相关日志,需要配置 logLevel,值为 0 - 4,0表示不显示调试信息,4表示显示所有调试信息
            // logLevel: 4, // 【可选】
            // 设置画布ID,第一步中创建的画布ID,全局唯一
            canvasId: this.canvasId, // 【必须】
            // 接口初始化完毕后调函数,初始化完毕后就可以自动搜索打印机了。
            complete: (res) => {
                // 搜索蓝牙设备
                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 (typeof callback === "function") {
                    callback(true);
                }
            }
        });
    });
}

接口介绍


interface InitOptions {
    /** 用于标签绘制的 canvas ID */
    canvasId: string;
    /** 初始化完毕回调函数 */
    complete?: (resp: IResponse<any>) => void;
    /** 是否显示相关日志信息 */
    logLevel?: number;
}

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

export interface JobCommitOptions<T> {
    darkness?: number;
    speed?: number;
    gapType?: number;
    threshold?: number;
    dpi?: number;
    orientation?: number;
    success?: (resp: IResponse) => void;
    fail?: (resp: IResponse) => void;
    complete?: (resp: IResponse) => void;
}
export interface LPAPI {
        /**
         * 获取 LPAPI 接口单实例。
         *
         * @param printer 外部提供的打印机设备接口。
         * @returns {LPAPI} LPAPI 接口实例对象。
         */
        static getInstance(adapter?: LPAPIContext): LPAPI;
        /**
         * 设置有效的打印机型号。
         */
        static setPrinterModels(models?: string): void;
        /**
         * 异步加载图片 URL。
         * 图片的绘制需要加载完毕之后才可以进行canvas绘制,否则可能会不显示。
         */
        loadImage(src: string, callback?: (image: HTMLImageElement | string | null) => void): Promise<HTMLImageElement | string | null>;
        /**
         * 开始搜索打印机设备。
         *
         * @param options 蓝牙打印机搜索相关现象;
         * @param {string|undefined} options.models 只搜索指定型号的打印机设备;
         * @param {number|undefined} options.timeout 搜索超时时间,
         *      undefined : 表示一直搜索,当用户调用 {@link stopBleDiscovery} 接口的时候或者链接打印机的时候,自动停止;
         *      0         :表示搜索到目标打印机后立即停止搜索;
         *      number    : 用户指定的超时时间到了之后,自动停止搜索;
         * @param {number|undefined} interval 设备搜索上报的时间间隔;
         * @param {(devices: IBleDevice[]) => void} deviceFound 检测到设备时的回调函数;
         * @param {(result: IBleAdapterStateChangeResult) => void} adapterStateChange 搜索状态变化时的回调函数;
         * @param {(resp: IResponse<any>) => void} success 搜索蓝牙设备启动成功时的回调函数;
         * @param {(resp: IResponse<any>) => void} fail 搜索蓝牙设备启动失败时的回调函数;
         * @param {(resp: IResponse<any>) => void} complete 搜索蓝牙设备启动成功或失败时的回调函数;
         *
         * @returns {Promise<IResponse<any>>} 等同于 complete回调函数。
         */
        startBleDiscovery(options?: IBleDiscoveryOptions<IResponse<any>>): Promise<IResponse<any>>;
        /**
         * 停止蓝牙设备搜索操作。
         */
        stopBleDiscovery(): Promise<any>;
        /**
         * 搜索指定型号或者名称的打印机。
         *
         * @param models 目标打印机型号或名称。
         * @param timeout 搜索超时时间,默认为0,表示搜索到目标设备后立即停止。
         */
        searchPrinter(models?: string, timeout?: number): Promise<IBleDevice | undefined>;
        /**
         * 获取缓存的打印机列表。
         *
         * @return {LPA_Device[]} 返回打印机设备列表。
         */
        getPrinters(): IBleDevice[];
        /**
         * 获取已连接的打印机名称。
         */
        getPrinterInfo(): IPrinterInfo | undefined;
        /**
         * 判断打印机是否已打开。
         */
        isPrinterOpened(): boolean;
        /**
         * 打开指定的打印机。
         *
         * @param {string|LPA_Printer|undefined} printer 打印机名称或对象。
         *
         * @param {string|undefined} printer.printerName 目标打印机名称。
         * @param {string|undefined} printer.ip 目标打印机IP地址,不指定表示链接本地打印机。
         *
         * @return {Promise<boolean>} 目标打印机链接成功与否。
         */
        openPrinter(options?: IOpenDeviceOptions<IResponse<any>> | string | ((resp: IResponse<any>) => void)): Promise<boolean>;
        /**
         * 关闭已经打开的打印机。
         *
         * @info 关闭打印机时,当前还有未打印的任务/数据将会被自动提交打印,同时所有参数设置将会被保留。
         */
        closePrinter(): Promise<boolean>;
        /**
         * 创建打印任务。
         *
         * 创建打印任务时,如果没有链接打印机,则本函数会自动打开当前系统安装的第一个 LPAPI 支持的打印机,用于打印。
         * 当前还有未打印的任务,已有打印数据将会被全部丢弃。
         *
         * @param {JobStartOptions} options 标签任务选项。
         *
         * @param {number} options.width 标签宽度,单位毫米,值默认为{@link CONSTANTS.LABEL_WIDTH}。
         * @param {number} options.height 标签高度,单位毫米,值默认为{@link CONSTANTS.LABEL_HEIGHT}。
         * @param {0|90|180|270} options.orientation 标签打印方向,`0`表示不旋转,`90`表示右转90度,`180`表示180度旋转,`270`表示左转90度,默认为0。
         * @param {string|undefined} options.jobName 打印任务名称,特殊情况下的任务不进行打印,可用于生成对应的预览图片,
         *          预览时的值可参考:{@link LPA_JobNames},默认为{@link LPA_JobNames.Print},表示打印任务。
         * @param {number} options.dpi 打印头分辨率(值默认为203);
         * @param {HTMLImageElement | undefined} options.backgroundImage 背景图,预览模式下有效;
         * @param {string|undefined} options.backgroundColor 背景色,预览模式下有效
         *
         * @returns {JobStartResult|undefined} 返回打印任务及画布相关信息。
         */
        startJob(options: JobStartOptions): JobStartResult | undefined;
        /**
         * 获取当前打印任务的预览图片。
         */
        toDataURL(): string;
        /**
         * 通过回调方式获取 canvas 画布中的二进制数据。
         *
         * @param callback ImageData数据获取回调函数。
         */
        getImageData(callback: (data: ImageData | undefined) => void): void;
        /**
         * 提交打印任务,进行真正的打印。
         *
         * @param {LPA_JobCommitOptions|undefined} options 相关打印参数。
         *
         * @param {number|undefined} options.threshold 图片进行黑白转换时的阈值,默认为{@link CONSTANTS.THRESHOLD},也即:192。
         * @param {LPA_PrintSpeed|undefined} options.speed 打印速度,默认随打印机设置。
         * @param {LPA_PrintDarkness|undefined} options.darkness 打印浓度,默认随打印机设置。
         * @param {LPA_GapType|undefined} options.gapType 纸张类型,默认随打印机设置。
         * @param {(resp: IResponse<string>) => void} options.success 打印任务处理成功回调函数;
         * @param {(resp: IResponse<string>) => void} options.fail 打印任务处理失败回调函数;
         * @param {(resp: IResponse<string>) => void} options.complete 打印任务处理完毕回调函数;
         */
        commitJob(options?: LPA_JobCommitOptions<IResponse<string>>): Promise<IResponse<string>>;
        /*********************************************************************
         * 绘制相关内容。
         *********************************************************************/
        /**
         * 绘制文本。
         *
         * regionCorners regionLeftUpCorner regionRightUpCorner regionRightBottomCorner
         * regionLeftBottomCorner regionLeftBorders regionRightBorders,这些参数都是长度
         * 数组,建议都是通过数组来传递参数,这样接口会对长度都自动转发为接口使用的 0.01mm 的
         * 单位。为了调试方便,这些参数也支持逗号分隔的字符串方式来参数。但是此时参数必须调用者
         * 自己转发为 0.01mm 为单位的长度数据。
         *
         * @param {DrawTextOptions} options 文本绘制相关选项。
         *
         * @param {string|string[]} options.text 待绘制的文本数据。
         * @param {number|undefined} options.x 绘制对象的水平坐标位置,单位毫米。值默认为0。
         * @param {number|undefined} options.y 绘制对象的垂直坐标位置,单位毫米。值默认为0。
         * @param {number|undefined} options.width 绘制对象的显示宽度,单位毫米。
         *          值默认为0,表示绘制宽度不做限制。
         * @param {number|undefined} options.height 绘制对象的显示高度,单位毫米。
         *          值默认为0,表示高度不做显示,以实际高度显示。
         * @param {string|undefined} options.fontName 绘制对象的字体名称,值默认为{@link CONSTANTS.FONT_NAME}。
         * @param {number} options.fontHeight 绘制对象的字体高度,单位毫米,
         *          值默认为{@link CONSTANTS.FONT_HEIGHT}。
         * @param {LPA_FontStyle|undefined} options.fontStyle 字体样式。
         * @param {LPA_AutoReturnMode|undefined} options.autoReturn 自动换行模式,默认为{@link LPA_AutoReturnMode.Char}。
         *          {@link LPA_AutoReturnMode.None}:没有自动换行;
         *          {@link LPA_AutoReturnMode.Char}:按字换行;
         *          {@link LPA_AutoReturnMode.Word}:按词换行。
         * @param {number|undefined} options.charSpace 字符间距,默认为0,单位毫米。
         * @param {number|string|undefined} options.lineSpace 行间距,单位毫米,
         *          或为枚举字符串(1_0,1_2,1_5,2_0)。默认为 1_0,也即单倍行距。
         *          格式为:`[Width, Y, Height, Width, Y, Height]`,单位毫米。
         * @param {number[]|string|undefined} regionRightBorders 显示区域右边的删除矩形,最多支持删除两个矩形,
         *          格式为:`[Width, Y, Height, Width, Y, Height]`,单位毫米。
         * @param {boolean|undefined} onlyMeasureText 表示仅仅度量、而不真正的绘制文本。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         * @param {LPA_ItemAlignment|undefined} options.horizontalAlignment 水平对齐方式。不指定表示使用 {@link setItemHorizontalAlignment()} 设置的参数,
         *          默认为{@link LPA_ItemAlignment.Start},表示居左对齐。
         * @param {LPA_ItemAlignment|undefined} options.verticalAlignment 垂直对齐方式。不指定表示使用 {@link setItemVerticalAlignment()} 设置的参数,
         *          默认为: {@link LPA_ItemAlignment.Start},表示居上对齐。
         */
        drawText(options: DrawTextOptions): void;
        /**
         * 打印一维条码。
         *
         * @param {DrawBarcodeOptions} options 一维码绘制相关选项。
         *
         * @param {string} options.text 待绘制的一维码数据。
         * @param {number|undefined} options.x 绘制对象的水平坐标位置,单位毫米。值默认为0。
         * @param {number|undefined} options.y 绘制对象的垂直坐标位置,单位毫米。值默认为0。
         * @param {number|undefined} options.width 绘制对象的显示宽度,单位毫米。
         *          值默认为0,表示根据 {@link barPixels} 设定的点的大小自动计算对象宽度。
         * @param {number|undefined} options.height 绘制对象的显示高度,单位毫米。
         *          值默认为0,表示根据 {@link barPixels} 设定的点的大小自动计算对象宽度。
         * @param {number|undefined} options.textHeight 一维码中供人识读文本的高度,单位毫米,
         *          值默认为0,表示不显示一维码下面的字符串。
         * @param {LPA_BarcodeType|undefined} options.type 一维码类型,默认为{@link LPA_BarcodeType.LPA_1DBT_AUTO},表示根据字符串自动采用最佳方式。
         * @param {string|undefined} options.fontName 一维码中供人识读文本的字体名称,默认为{@link CONSTANTS.FONT_NAME}。
         * @param {LPA_FontStyle|undefined} options.fontStyle 一维码供人识读文本的字体风格,默认为{@link LPA_FontStyle.Regular},表示显示常规字体样式。
         * @param {LPA_ItemAlignment|undefined} options.textAlignment 一维码供人识读文本的水平对齐方式,值参考{@link LPA_ItemAlignment},
         *          >= 5 表示表示跟随一维码本身的水平对齐方式,默认为{@link LPA_ItemAlignment.Center},也即居中对齐。
         * @param {LPA_BarcodeFlags|undefined} options.barcodeFlags 一维码编码参数标志,值参考{@link LPA_BarcodeFlags},默认为 ShowReadDown | ShowStartStop | EanCheckCode。
         * @param {number} options.barPixels 在不指定一维码宽度的情况下,一维码中每个逻辑点的像素大小,单位像素,值为 1 - 7 之间的任意值,默认为2。
         * @param {number|undefined} options.textBarSpace 一维码供人识读文本和条码的垂直间距,单位毫米,默认为约2个像素。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         * @param {LPA_ItemAlignment|undefined} options.horizontalAlignment 水平对齐方式。不指定表示使用 {@link setItemHorizontalAlignment()} 设置的参数,
         *          默认为{@link LPA_ItemAlignment.Start},表示居左对齐。
         * @param {LPA_ItemAlignment|undefined} options.verticalAlignment 垂直对齐方式。不指定表示使用 {@link setItemVerticalAlignment()} 设置的参数,
         *          默认为: {@link LPA_ItemAlignment.Start},表示居上对齐。
         */
        draw1DBarcode(options: Draw1DBarcodeOptions): void;
        /**
         * 打印 QrCode 二维码。
         *
         * @param {DrawQrcodeOptions} options QRCode二维码绘制相关参数。
         *
         * @param {string} options.text 待绘制的二维码数据。
         * @param {number|undefined} options.x 绘制对象的水平坐标位置,单位毫米。
         * @param {number|undefined} options.y 绘制对象的垂直坐标位置,单位毫米。
         * @param {number|undefined} options.width 绘制对象的显示宽度,单位毫米
         *          值默认为0,表示根据 {@link qrcPixels} 设定的点的大小自动计算二维码大小。
         * @param {number|undefined} options.height 绘制对象的显示高度,不指定表示按照:{@link width} 来显示,单位毫米。
         * @param {number|number} options.version 二维码编码最小版本号,1~40,默认为根据内容自动计算。
         * @param {LPA_QREccLevel|undefined} options.eccLevel 二维码纠错模式,值参考{@link LPA_QREccLevel},默认为{@link LPA_QREccLevel.EccLevel_L}。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         * @param {LPA_ItemAlignment|undefined} options.horizontalAlignment 水平对齐方式。不指定表示使用 {@link setItemHorizontalAlignment()} 设置的参数,
         *          默认为{@link LPA_ItemAlignment.Start},表示居左对齐。
         * @param {LPA_ItemAlignment|undefined} options.verticalAlignment 垂直对齐方式。不指定表示使用 {@link setItemVerticalAlignment()} 设置的参数,
         *          默认为: {@link LPA_ItemAlignment.Start},表示居上对齐。
         */
        draw2DQRCode(options: DrawQRCodeOptions): void;
        /**
         * 打印 Pdf417 二维码。
         *
         * @param {DrawPdf417Options} options PDF417二维码绘制选项。
         *
         * @param {string} options.text 待绘制的PDF417二维码数据。
         * @param {number|undefined} options.x 绘制对象的水平坐标位置,单位毫米,值默认为0。
         * @param {number|undefined} options.y 绘制对象的垂直坐标位置,单位毫米,值默认为0。
         * @param {number|undefined} options.width 绘制对象的显示宽度,单位毫米
         *          值默认为0,表示根据 {@link p417Pixels} 设置的大小自动计算二维码宽度。
         * @param {number|undefined} options.height 绘制对象的显示高度,单位毫米
         *          值默认为0,表示根据 {@link p417Pixels} 设置的大小自动计算二维码高度。
         * @param {LPA_P417EccLevel|undefined} options.eccLevel 二维码纠错模式,值参考{@link LPA_P417EccLevel},默认为{@link LPA_P417EccLevel.Auto}。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         * @param {LPA_ItemAlignment|undefined} options.horizontalAlignment 水平对齐方式。不指定表示使用 {@link setItemHorizontalAlignment()} 设置的参数,
         *          默认为{@link LPA_ItemAlignment.Start},表示居左对齐。
         * @param {LPA_ItemAlignment|undefined} options.verticalAlignment 垂直对齐方式。不指定表示使用 {@link setItemVerticalAlignment()} 设置的参数,
         *          默认为: {@link LPA_ItemAlignment.Start},表示居上对齐。
         */
        draw2DPdf417(options: DrawPDF417Options): void;
        /**
         * 打印 DataMatrix 二维码。
         *
         * @param {DrawDataMatrixOptions} options DataMatrix 二维码绘制选项。
         *
         * @param {string} options.text 待绘制的二维码数据。
         * @param {number|undefined} options.x 绘制对象的水平坐标位置,单位毫米。
         * @param {number|undefined} options.y 绘制对象的垂直坐标位置,单位毫米。
         * @param {number|undefined} options.width 绘制对象的显示宽度,单位毫米
         *          值默认为0,表示根据 {@link dmtxPixels} 设定的点的大小自动计算二维码大小。
         * @param {number|undefined} options.height 绘制对象的显示高度,不指定表示按照:{@link width} 来显示,单位毫米。
         * @param {number|number} options.symbolShape
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270,默认为0,表示不旋转。
         * @param {LPA_ItemAlignment|undefined} options.horizontalAlignment 水平对齐方式。不指定表示使用 {@link setItemHorizontalAlignment()} 设置的参数,
         *          默认为{@link LPA_ItemAlignment.Start},表示居左对齐。
         * @param {LPA_ItemAlignment|undefined} options.verticalAlignment 垂直对齐方式。不指定表示使用 {@link setItemVerticalAlignment()} 设置的参数,
         *          默认为: {@link LPA_ItemAlignment.Start},表示居上对齐。
         * @returns 成功与否。
         */
        draw2DDataMatrix(options: DrawDataMatrixOptions): void;
        /**
         * 绘制矩形框。
         *
         * @param {DrawRectOptions} options 矩形框绘制相关选项。
         *
         * @param {number|undefined} options.x 矩形的水平位置,单位毫米,值默认为0。
         * @param {number|undefined} options.y 矩形的垂直位置,单位毫米,值默认为0。
         * @param {number|undefined} options.width 矩形的水平宽度,单位毫米,默认为{@link CONSTANTS.RECT_WIDTH}。
         * @param {number|undefined} options.height 矩形的垂直高度,单位毫米,值默认与宽度相同。
         * @param {number|undefined} options.cornerWidth 矩形的圆角宽度,单位毫米,值默认为0。
         * @param {number|undefined} options.cornerHeight 矩形的圆角高度,单位毫米,值默认为0。
         * @param {number|undefined} options.lineWidth 圆角矩形的线宽,单位毫米,值默认为{@link CONSTANTS.LINE_WIDTH}。
         * @param {boolean|undefined} options.fill 是否绘制填充圆角矩形,值默认为false,表示显示矩形边框。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         */
        drawRectangle(options: DrawRectOptions): boolean | void;
        /**
         * 绘制椭圆边框。
         *
         * @param {DrawRectOptions} 椭圆绘制相关选项。
         *
         * @param {number|undefined} options.x 椭圆的水平位置,单位毫米,值默认为0。
         * @param {number|undefined} options.y 椭圆的垂直位置,单位毫米,值默认为0。
         * @param {number|undefined} options.width 椭圆的水平宽度,单位毫米,值默认为{@link CONSTANTS.RECT_WIDTH}。
         * @param {number|undefined} options.height 椭圆的垂直高度,单位毫米,值默认与宽度相同。
         * @param {number|undefined} options.lineWidth 椭圆的线宽,单位毫米,值默认为{@link CONSTANTS.LINE_WIDTH}。
         * @param {boolean|undefined} options.fill 是否绘制填充椭圆,默认为false,表示绘制椭圆边框。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         */
        drawEllipse(options: DrawBorderOptions): boolean;
        /**
         * 绘制圆形。
         *
         * @param {DrawCircleOptions} options 圆形绘制相关参数。
         *
         * @param {number|undefined} options.x 水平方向上的圆心坐标位置,单位毫米,值默认为0。
         * @param {number|undefined} options.y 垂直方向上的圆心坐标位置,单位毫米,值默认为0。
         * @param {number|undefined} options.radius 圆形半径,单位毫米,值默认为{@link CONSTANTS.RADIUS}。
         * @param {number|undefined} options.lineWidth 圆形边框宽度,单位毫米,值默认为{@link CONSTANTS.LINE_WIDTH}。
         * @param {boolean|undefined} options.fill 是否绘制填充圆形,默认为false,表示只绘制圆形边框。
         */
        drawCircle(options: DrawCircleOptions): boolean;
        /**
         * 绘制直线。
         *
         * @param {DrawLineOptions} options 直线绘制相关选项。
         *
         * @param {number|undefined} options.x1 点划线起点位置,单位毫米,值默认为0。
         * @param {number|undefined} options.y1 点划线起点位置,单位毫米,值默认为0。
         * @param {number|undefined} options.x2 点划线终点位置,单位毫米,值默认等于x1。
         * @param {number|undefined} options.y2 点划线终点位置,单位毫米,值默认等于y1。
         * @param {number|undefined} options.lineWidth lineWidth: 直线线宽,单位毫米,值默认为{@link CONSTANTS.lineWidth}。
         * @param {number[]|undefined} options.dashLens 点化线线段长度的数组。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         */
        drawLine(options: DrawLineOptions): void;
        /**
         *  打印指定的URL图片。
         *
         * @param {DrawImageUrlOptions} options URL图片绘制相关选项。
         *
         * @param {CanvasImageSource} options.img 图片对象。
         * @param {number|undefined} options.x 绘制对象的水平坐标位置,单位毫米,值默认为0。
         * @param {number|undefined} options.y 绘制对象的垂直坐标位置,单位毫米,值默认为0。
         * @param {number|undefined} options.width 绘制对象的显示宽度,单位毫米,值默认为0,表示图片的实际大小。
         * @param {number|undefined} options.height 绘制对象的显示高度,单位毫米,值默认为0,表示图片的实际大小。
         * @param {number|undefined} options.threshold 图片黑白打印的灰度阈值。
         *          0 表示使用参数设置中的值;
         *          256 表示取消黑白打印,用灰度打印;
         *          257 表示直接打印图片原来的颜色。
         * @param {0|90|180|270|undefined} options.orientation 旋转角度,0、90、180、270。
         *          不指定表示使用 {@link setItemOrientation()} 设置的参数。默认为0,表示不旋转。
         *
         * @info        如果之前没有调用 StartPage 而直接进行打印,则打印函数会自动调用 StartPage开始一打印页面,然后进行打印。
         * @info        打印位置和宽度高度是基于当前页面的位置和方向,不考虑页面和打印动作的旋转角度。
         * @info        图片打印时会被缩放到指定的宽度和高度。
         * @info        标签打印都是黑白打印,因此位图会被转变成灰度图片(RGB三分量相同,0~255取值的颜色)之后,然后根据一阀值将位图再次转换黑白位图再进行打印。
         *              默认灰度阀值为 192,也就是说 >= 192 的会被认为是白色,而 < 192 的会被认为是黑色。
         */
        drawImage(options: DrawImageOptions): boolean;
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问