更新记录

1.0.2(2026-10-14) 下载此版本

  • 承接项目侧下沉:BLEPrinterBase(TSPL + BLE 打印机基类)
  • uni_modules.dependencies 补齐 pro-device-adp-ble(BLEPrinterBase 实际依赖)

1.0.1(2026-10-14) 下载此版本

  • 承接 PrintError(自 pro-device-core 下沉)

1.0.0(2026-10-14) 下载此版本

  • 首次发布
  • 提供打印能力接口、PrintCanvas / PrintDocument / TSPLCanvas 与 SDKPrinterBase
  • 依赖 pro-device-core
查看更多

平台兼容性

uni-app(5.06)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ √ √ √ - √ - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
√ - - - - - - - - - - -

pro-device-print — 打印设备模型

设备框架的打印能力层。提供 IPrintable / IPrintJobSupport、画布文档模型、TSPLCanvas、以及 SDKPrinterBase。

依赖 pro-device-core。


架构定位

pro-device-print
├── IPrintable<TDoc>           ← 传输层:print / printTest
├── IPrintJobSupport           ← 能力层:声明可执行的业务 PrintJobId
├── resolveDeviceForPrintJob   ← 通用选机(prefer + candidates)
├── 画布模型
│   ├── PrintCanvas / PrintDocument   ← 坐标系标签(TSPL)
│   └── LineCanvas / LineDocument     ← 行模式热敏
├── TSPLCanvas
└── SDKPrinterBase<TDoc>       ← SDK 打印机基类(含 Job 声明)

正交关系(务必分清):

概念 回答的问题
PrintJobId + IPrintJobSupport 这台机能不能干这个业务活?
PrintDocument / LineDocument 用哪种画布协议排版?
IPrintable.print 如何把文档发出去?

框架不内置任何业务 Job 名;应用层定义常量(如 'hazardous-waste-label'),在具体打印机构造时挂到 supportedPrintJobs。


两种打印模型

模型一:坐标系标签打印(PrintDocument + PrintCanvas)

适用于 BLE 标签打印机(Gprinter GP-M421、Xprinter XP-P441B 等 TSPL 协议设备)。

模型二:行模式热敏打印(LineDocument + LineCanvas)

适用于 商米内置打印机等按行输出的热敏机。


按任务选机

import {
  resolveDeviceForPrintJob,
  type PrintJobId,
} from '@/uni_modules/pro-device-print'

const JOB: PrintJobId = 'hazardous-waste-label'
const printer = resolveDeviceForPrintJob(connectedPrinters, JOB, { prefer: activePrinter })
if (!printer) throw new Error('无支持该任务的打印机')
await printer.print(doc)

机型在基类构造时声明:

super(config, { supportedPrintJobs: ['hazardous-waste-label'] })

printTest() 属于连接自检,不是业务 Job。


核心 API

IPrintable<TDoc>

方法 说明
print(document) 打印一份文档
printTest() 内置测试页

IPrintJobSupport

成员 说明
supportedPrintJobs 本机支持的业务任务 ID 列表
supportsPrintJob(id) 是否支持指定任务

画布 / 文档 / TSPLCanvas / SDKPrinterBase

业务实现 PrintDocument 或 LineDocument,由对应打印机 print() 渲染发送。SDK 基类第二参数可传 supportedPrintJobs。


平台支持

本包为纯 TypeScript,无平台 API 依赖。具体打印机平台能力取决于传输层适配器。

隐私、权限声明

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

无

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

插件不采集任何数据

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

无

许可协议

MIT协议

暂无用户评论。