PrintLabelActivity - 标签打印
概述
| 属性 | 值 |
|---|---|
| 节点名称 | 标签打印 |
| 节点描述 | 标签打印步骤 |
| 节点类型 | 业务节点 |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 程序集 | CMS.Plugin.MesSuite.Activitys |
| 分类 | 工序步骤 |
| 排序 | 9 |
| 发布 | 否 |
| 基类 | BusinessActivity |
功能说明
PrintLabelActivity 是标签打印节点,用于通过打印代理服务将标签打印到指定打印机。该节点支持批量打印、自定义打印数据源、打印记录保存等功能。
配置属性
| 属性名 | 显示名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| PrinterName | 打印机名称 | string | 否 | null | 打印机名称 |
| PrintAgentIP | 代理IP | string | 否 | null | 打印代理IP,本机打印使用 127.0.0.1 |
| PrintTemplate | 模板路径 | string | 否 | null | 打印模板路径,如 D:\模板1.btw |
| PrintNumber | 打印份数 | int | 否 | 1 | 打印份数 |
| RequestTimeOut | 请求超时时间(s) | int | 是 | 60 | 请求超时时间(秒) |
| SubStringLength | 字符串截取长度 | int | 是 | 100 | 打印数据字符串截取长度 |
业务逻辑
执行流程
开始
│
▼
获取打印数据模型列表
│
├─► 为空 → 使用节点配置创建默认模型
│
▼
遍历打印数据模型
│
├─► 检查打印配置(代理、打印机、模板)
│ │
│ └─► 配置为空 → 设置结果=2,返回
│
├─► 验证代理 IP 地址
│ │
│ └─► 无效 → 设置结果=2,返回
│
├─► 合并扩展打印数据源
│
├─► 截取超长字符串
│
└─► 调用打印服务执行打印
│
├─► 成功 → 记录成功
│
└─► 失败 → 记录失败原因
│
▼
设置打印结果
│
▼
退出时保存打印记录
│
▼
结束
结果值说明
| 结果值 | 说明 |
|---|---|
| 1 | 打印成功 |
| 2 | 打印失败 |
| 3 | 打印机连接失败 |
流程数据项
输入数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| PrintDataModel | List<PrintDataModel> | 打印数据模型列表 |
| LabelPrintDataSource | Dictionary<string, string> | 扩展打印数据源 |
输出数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| LabelPrintResultValue | int | 打印结果(1=成功,2=失败,3=连接失败) |
| LabelPrintDescriptionValue | string | 打印说明 |
依赖服务
| 服务接口 | 说明 |
|---|---|
| IPrintService | 打印服务 |
| ILabelProvider | 标签提供者 |
| ISettingManager | 设置管理器 |
| IJsonSerializer | JSON 序列化器 |
使用示例
基本配置
<PrintLabelActivity Name="标签打印">
<PrinterName>Printer1</PrinterName>
<PrintAgentIP>127.0.0.1:9100</PrintAgentIP>
<PrintTemplate>D:\Templates\Label1.btw</PrintTemplate>
<PrintNumber>1</PrintNumber>
<RequestTimeOut>60</RequestTimeOut>
</PrintLabelActivity>
批量打印配置
通过流程数据项设置多个打印任务:
<PrintInitializeActivity Name="打印初始化" />
<PrintLabelActivity Name="标签打印" />
典型流程配置
打印初始化 → 标签打印 → 条件分支(成功/失败)
<PrintInitializeActivity Name="打印初始化" />
<PrintLabelActivity Name="标签打印">
<RequestTimeOut>60</RequestTimeOut>
<SubStringLength>100</SubStringLength>
</PrintLabelActivity>
<ConditionActivity Name="打印结果判断">
<Condition>Flow.DataItems["LabelPrintResultValue"] == 1</Condition>
<TrueBranch>继续生产</TrueBranch>
<FalseBranch>异常处理</FalseBranch>
</ConditionActivity>
相关节点
- PrintInitializeActivity - 打印初始化
- BusinessActivity - 业务活动基类
注意事项
- 此节点当前未发布(Visible = false)
- 打印代理 IP 必须是有效的 IP 地址
- 打印模板路径必须在打印代理机器上存在
- 超长字符串会被截取并添加省略号
- 打印记录会在节点退出时自动保存