跳转到主要内容
打印功能把实体标签贴到零件、批次、货架和看板料箱上。管理员连接打印机并决定每个工位使用哪一台;仓库和车间人员在过账收货、拆分批次或完成工单的第一道工序时,就会自动获得标签。

概览

打印系统由三部分组成: 这与发票、采购订单、报价单和工单流转卡等生成的文档不同,后者以文件形式送达。打印是把输出发送到实体打印机,默认输出是热敏 ZPL 标签。

格式

作业被路由到的打印机决定其渲染方式:
  • ZPL 是热敏标签打印机的命令语言,也是零件标签和存储单元标签的默认格式。只有当介质尺寸具有 ZPL 尺寸时,ZPL 标签才能渲染。
  • PDF 是完整文档,由生成发票和工单流转卡的同一套 React-PDF 引擎绘制。看板卡片仅支持 PDF,因此除非有模板覆盖,将其发送到仅支持 ZPL 的打印机会失败。

单据类型

定义了三种标签类型(packages/web/printing/src/registry.ts 中的 documentTypeRegistry): 来源单据决定可以打印哪些类型:过账发货会生成产品标签,扫描存储单元会生成存储单元标签。查找由 getDocumentTypesForSource 完成。

设置打印

1. 添加打印机路由

打印机路由代表一台实体打印机。前往设置 → 打印 → 打印机,选择添加打印机。

2. 测试打印机

每条路由都有一个测试操作,它会把一张小的 ZPL 标签直接发送到其 printerUrl,让您在依赖打印机之前先确认它可达。测试只适用于设置了介质尺寸的 ZPL 路由,成功时会显示 "Test label sent to printer"(测试标签已发送到打印机)。

3. 将打印机分配给上下文

路由是一台打印机;分配决定何时使用它。打开设置 → 打印 → 分配,每个位置都有各自的区块。在其中,为每个上下文指定一台打印机(packages/web/printing/src/assignments.ts 中的 printerContexts): 每个上下文行还有一个自动打印开关;开启后,匹配的业务事件无需任何人点击就会打印。getPrinterContextForSource 查找来源单据对应的上下文,resolveContextAssignment 应用后备规则,因此未分配的上下文会使用该位置的默认打印机。

自动打印

在受支持的业务事件之后,Alforse 会查找该位置和上下文对应的打印机,检查 autoPrint(未设置时视为开启)并将作业加入队列。打印失败绝不会阻止触发它的收货、发货或工单。 若要让某个工位静音,请在该位置对应上下文行上关闭自动打印。

手动打印

在相应界面上选择打印,或将来源单据发送到手动打印路由(/x/print),它会验证请求并将同类作业加入队列。 打印的行为取决于该位置:

打印作业队列

作业状态

每个作业都会记录其 origin: 作业还会存储 sourceDocument、sourceDocumentId、可读 ID、contentType,以及它送往的 printerUrl。

监控与重新打印

打开设置 → 打印 → 打印作业(Print jobs)。表格会实时更新,显示状态、描述、来源、类型、来源方式和时间。展开一行可查看打印机 URL、尝试次数、时间戳和任何错误。在一行上您可以:
  • 查看内容:ZPL 通过 Labelary 预览,PDF 在内嵌框架中预览;
  • 重新打印,这会创建一个 origin: "reprint" 的新作业;
  • 删除。

标签尺寸

介质尺寸来自固定目录(packages/web/utils/src/labels.ts):label2x1、label4x2、公制的 label100x50mm 和 label50x25mm,以及仅限 PDF 的 avery5163。只有带 ZPL 尺寸的规格才能在热敏打印机上打印,因此 Avery 这类仅限 PDF 的尺寸不能。 尺寸在两个地方设置:
  • 每条打印机路由固定自己的 mediaSizeId,与该打印机中装载的标签相符;
  • 公司的默认产品标签尺寸(companySettings.productLabelSize)在文档模板界面设置,当没有路由设置尺寸时,交互式标签下载路由使用它。
该默认值的位置见公司设置;为内置标签模板设定样式的自定义工具见文档。

故障排除

标签没有打印

请按顺序检查:
  1. 该位置和上下文已分配打印机路由,且其自动打印开关已开启。
  2. 路由有可访问的 printerUrl。没有它,作业会渲染但无法投递。
  3. 该作业在设置 → 打印 → 打印作业中不是失败状态。展开该行查看 error。
将自动打印加入队列时发生的失败会记录为 “Auto-print failed”(自动打印失败),绝不会显示在收货或发货界面上,所以应当查看打印作业列表。如果根本没有作业,则要么没有解析出打印机且自动打印已关闭,要么该事件不会自动打印。只有自动打印中的四种事件才会;其他情况请使用打印或手动路由。

错误消息

相关内容