开发文档

PrintSDK 使用指南

PrintSDK 使用指南

安装与引入

<script src="js/pdf-badge-renderer.umd.js"></script>
<script src="js/print-sdk.umd.js"></script>

快速开始

  • 创建客户端并连接:

    const client = PrintSDK.createClient({ url: 'ws://localhost:3152', heartbeat: { interval: 10000, timeout: 30000 }, codec: 'msgpack' })
    await client.connect()
  • 创建打印管理器并设置渲染器:

    const { TemplateRenderer } = window.PDFBadgeRenderer
    const renderer = async (tpl, data, opts) => new TemplateRenderer().renderTemplate(tpl, data, opts)
    const pm = PrintSDK.createPrintManager(client, renderer)
  • 获取打印机列表:

    pm.listPrinters()
    pm.onStatus(s => { if (s.type === 'printers') console.log(s.data) })
  • 发送打印任务:

    pm.setDefaults({ printer: 'HP', copies: 2, width: 90, height: 110, format: 'png' })
    pm.enqueue({ template: tplJson, data: dataJson })
    await pm.start()

API 概览

// API 概览示例
// 1) 创建客户端(第二参数为日志级别)
const client = PrintSDK.createClient({ url: 'ws://localhost:3152' }, 'info')

// 2) 创建打印管理器(传入渲染器)
const { TemplateRenderer } = window.PDFBadgeRenderer
const renderer = async (tpl, data, opts) => new TemplateRenderer().renderTemplate(tpl, data, opts)
const pm = PrintSDK.createPrintManager(client, renderer)

// 3) 发送自定义消息到服务端
client.send('ping', { t: Date.now() }) // 服务端按需处理

// 4) 入队打印任务
pm.enqueue({ template: tplJson, data: dataJson })

// 5) 控制队列
await pm.start()    // 开始
pm.pause()          // 暂停
pm.clear()          // 清空

// 6) 订阅状态
pm.onStatus(s => console.log(s)) // printers | progress | complete | error

// 7) 获取打印机列表
pm.listPrinters()

// 8) 设置默认打印参数
pm.setDefaults({ printer: 'HP', copies: 1, format: 'png' })

事件与状态

// WebSocket 事件示例
client.on('connected', () => console.log('已连接'))
client.on('disconnected', () => console.log('已断开'))
client.on('error', err => console.error('连接错误', err))
client.on('message', msg => console.log('收到消息', msg))

// 打印状态事件示例
pm.onStatus(s => {
  switch (s.type) {
    case 'printers':   // 打印机列表
      console.log(s.data)
      break
    case 'progress':   // 队列进度与当前任务
      console.log(s.data)
      break
    case 'complete':   // 队列完成
      console.log('done')
      break
    case 'error':      // 队列或渲染错误
      console.error(s.data)
      break
  }
})

类型定义

js/print-sdk.d.ts

版本

PrintSDK.version

← 返回首页