Skip to content

MultiPrinterManager API

多打印机管理器,支持多设备并发打印和负载均衡。

导入

typescript
import { MultiPrinterManager } from 'taro-bluetooth-print';

创建实例

typescript
const manager = new MultiPrinterManager({
  maxConcurrent: 3,      // 最大并发数
  loadBalance: 'round-robin',  // 负载均衡策略
  retryCount: 3
});

方法

添加打印机

addPrinter(id: string, printer: BluetoothPrinter): void

添加打印机到管理器。

typescript
manager.addPrinter('printer-1', printer1);
manager.addPrinter('printer-2', printer2);

removePrinter(id: string): void

移除打印机。

typescript
manager.removePrinter('printer-1');

打印操作

使用负载均衡选择打印机执行打印。

typescript
const result = await manager.print(printData);
console.log(`使用打印机: ${result.printerId}`);

printTo(printerId: string, data: Uint8Array): Promise<void>

指定打印机执行打印。

typescript
await manager.printTo('printer-1', printData);

状态查询

getPrinters(): PrinterInfo[]

获取所有打印机信息。

typescript
const printers = manager.getPrinters();
printers.forEach(p => {
  console.log(`${p.id}: ${p.status}`);
});

getStatus(id: string): PrinterStatus

获取指定打印机状态。

typescript
const status = manager.getStatus('printer-1');
// 'idle' | 'printing' | 'error' | 'offline'

事件

typescript
manager.on('printer-added', (id) => {
  console.log('打印机添加:', id);
});

manager.on('printer-removed', (id) => {
  console.log('打印机移除:', id);
});

manager.on('printer-error', (id, error) => {
  console.error('打印机错误:', id, error);
});

负载均衡策略

策略说明
round-robin轮询,依次选择
least-loaded选择负载最低的
random随机选择

基于 MIT 许可发布