更新记录
1.0.7(2024-01-05)
- 增加打印浓度、打印速度等参数设置的功能;
- 增加打印任务队列的功能;
- 多平台打印适配及测试;
- 修复了之前版本中测试出来的一些bug;
1.0.6(2023-12-22)
- 钉钉小程序适配;
- 打印相关接口优化完善;
1.0.5(2023-12-21)
- 钉钉小程序适配;
- 微信小程序、支付宝小程序新版 canvas 适配;
- 解决了字间距无效的问题;
查看更多
平台兼容性
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绘图实现所见即所得的标签打印功能。
接口包的获取
- 通过npm/yarn 直接下载安装;
npm install lpapi-ble-uni
// 或者
yarn add lpapi-ble-uni
- 打开 uni-app 插件市场,搜索 "lpapi-ble",搜索到并打开进入后,根据实际需要点击 "购买"(免费),或者"下载插件并导入HBuilderX";
使用方法
- 引入接口实例
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;" />
- 初始化接口实例(初始化之后才可以正常使用);
// 如果是在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) => {
// 更新打印机列表
},
});
},
});
},
}
- 根据实际需要创建指定大小的打印任务,开始打印或者预览;
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;
}