You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

可否通过QZ Tray原始代码实现数据直接保存为PDF而非打印

QZ Tray 直接生成PDF文件的实现说明

结论

可以直接实现,QZ Tray 2.2及以上版本原生支持直接将条码、标签等原始内容渲染为PDF文件,无需触发打印流程,也不需要调用系统打印服务。

实现逻辑

  • 无需指定实体打印设备,直接调用QZ Tray内置的PDF渲染接口即可
  • 支持传入的内容格式和QZ Tray打印支持的格式完全一致,包括ZPL、EPL、CPCL等条码打印语言,以及HTML、SVG、图片等通用格式
  • 整个生成过程在本地静默完成,不会弹出打印预览、也不会进入系统打印队列

核心调用示例(JS端)

import qz from 'qz-tray'

// 初始化QZ连接后执行
qz.websocket.connect()
  .then(() => {
    // 配置PDF输出参数
    const printConfig = qz.configs.create("PDF_RENDER")
    printConfig.set({
      outputType: "pdf",
      // 可选:指定本地保存路径,不填则返回PDF的Blob数据供前端自行处理
      outputPath: "/Users/yourname/Desktop/barcode_label.pdf",
      units: "mm",
      // 自定义PDF尺寸,适配标签/条码大小
      size: { width: 100, height: 80 }
    })

    // 传入原始条码/标签内容,完成生成
    return qz.print(printConfig, [
      // 示例为ZPL格式的条形码内容,可替换为你自己的原始代码
      "^XA^FO20,20^BCN,60,Y,N,N^FD987654321012^FS^XZ"
    ])
  })
  .then(() => console.log("PDF文件生成成功"))
  .catch(err => console.error("生成失败:", err))
  .finally(() => qz.websocket.disconnect())

注意事项

  • 低于2.2版本的QZ Tray无内置PDF渲染功能,需先升级到最新稳定版后再使用该能力
  • 若不需要直接保存到本地磁盘,可删除outputPath参数,调用完成后会返回PDF的二进制Blob数据,可自行实现前端下载、上传等后续处理
  • 生成的PDF清晰度和实际打印输出的效果完全一致,不会出现渲染偏差

内容的提问来源于stack exchange,提问作者lets code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:48:01