当前位置: 首页 > news >正文

聊一聊 MES系统如何实现多种标签打印并支持不同打印机

在实际生产过程中同一道工序往往需要打印多种规格的标签例如彩盒标签与卡通标签。这些标签的格式和纸张规格通常不同而纸张规格的差异也意味着需要使用不同的打印机。为此MES 系统通过全局监听打印任务并支持针对不同打印任务灵活配置对应的打印机从而实现高度可配置的打印管理。所有打印数据均来源于服务端模板文件中仅需定义变量即可。1.制作模板文件这里需要用到bartender软件模板做成什么样MES打印出来就是什么样子MES负责将真实的数据放进模板里面打印出来。2.创建打印服务程序用来监听客户端的打印请求关键代码如下using ax_mes_print.Model; namespace ax_mes_print.Service; public class CartonPrintService : IPrintService { private readonly HttpHelper _httpHelper; private readonly ILoggerCartonPrintService _logger; private readonly BartenderLabelHelper _bartenderLabelHelper; private const string folderName Carton; public CartonPrintService(HttpHelper httpHelper, ILoggerCartonPrintService logger, BartenderLabelHelper bartenderLabelHelper) { _httpHelper httpHelper; _logger logger; _bartenderLabelHelper bartenderLabelHelper; } public async TaskPrintResponse ExecutePrintAsync(string printParameter) { var requestParameter DeserializePrintRequest(printParameter); if (requestParameter null) { return PrintResponse.Error(打印参数有误); } if (string.IsNullOrWhiteSpace(requestParameter.CartonSN)) { return PrintResponse.Error(卡通箱号不能为空); } var LabelTemplateInfoList await QueryLabelTemplateInfoAsync(requestParameter.ProductCode); if (LabelTemplateInfoList.Count 0) { return PrintResponse.Error(未找卡通模板文件,请先上传); } var cartonDataData await QueryCartonDataAsync(requestParameter.CartonSN); if (cartonDataData null || cartonDataData.Item2.Length 0) { return PrintResponse.Error(未找到卡通数据,打印失败); } var directory FileHelper.CreateOrDeleteFolder(folderName); foreach (var item in LabelTemplateInfoList) { await _httpHelper.DownloadFileAsync(item.AccessUrl, folderName, item.FileName); var printReuslt _bartenderLabelHelper.BartenderPrint(SetPrintName(requestParameter.PrintName), Path.Combine(directory, item.FileName), cartonDataData.Item1, cartonDataData.Item2); if (printReuslt ! string.Empty) { return PrintResponse.Error(printReuslt); } } return PrintResponse.Success(打印命令发送成功,请查看打印机); } private CartonPrintWebSocketRequest? DeserializePrintRequest(string printParameter) { if (string.IsNullOrWhiteSpace(printParameter)) { return null; } var request JsonConvert.DeserializeObjectCartonPrintWebSocketRequest(printParameter); if (request is null) { return null; } return request; } private async TaskCartonDataData QueryCartonDataAsync(string cartonSN) { var queryCartonDataResponse null; return queryCartonDataResponse.Data; } private async TaskListLabelTemplateInfo QueryLabelTemplateInfoAsync(string productCode) { var queryLabelTemplateInfoResponse null; return queryLabelTemplateInfoResponse.Data; } }3.启动 MES 打印服务该服务程序会监听客户端的打印请求然后将打印任务传递给打印机。4.在 MES 里面启动连接打印机根据打印内容不同可以选择不同的打印机如果忘了选择打印机则系统以默认打印机为准.如图所示我们在配置页面根据不同的打印类型设置了不同的打印机当页面显示已连接的时候MES通过打印服务将需要打印的内容传递给打印机完成打印。
http://www.zskr.cn/news/1392043.html

相关文章:

  • 嵌入式运动提示算法与多轴平台:直升机高保真飞行模拟器设计
  • 2026年唐山外墙清洗、烟道保洁与商业保洁一体化解决方案深度横评指南 - 年度推荐企业名录
  • 量子机器学习赋能低资源语言情感分析:BUQRNN与PN-BUQRNN架构解析
  • 工业机器人工控机定制化服务流程与解决方案(工业机器人工控机定制指南)
  • 激光雷达在自动驾驶领域的应用
  • 猫抓Cat-Catch终极指南:如何在浏览器中高效捕获和下载视频资源
  • 嵌入式工程师能不能干SoC固件架构师,还缺啥?
  • 上下文窗口不够用?代码仓库级 RAG 方案让 AI 记住整个项目
  • Transformer-BERT集成模型在英语自动对话中的深度理解与生成实践
  • 森海塞尔Momentum 5登场!音质出色、降噪升级,能否挑战行业巨头?
  • 【仅限首批200家开放】AI Agent无代码沙盒环境限时解锁:含金融/医疗/零售行业预置Agent库
  • 如何用3分钟搭建个人离线漫画图书馆?哔咔漫画下载器终极指南
  • 企业如何利用Taotoken统一管理多个项目的AI模型成本
  • ThingsBoard集成Leaflet地图:从零构建自定义Widget
  • 2026年安阳高低压成套电气设备厂家推荐:如何选择安全可靠的配电解决方案 - 年度推荐企业名录
  • 可视耳勺哪家好?什么牌子的可视耳勺最好用?可视挖耳勺排行榜
  • C#索引器使用详解
  • 通义千问Qwen:从多模态理解到工具调用的智能助手实践指南
  • NVIDIA Profile Inspector深度解析:如何解锁显卡隐藏性能的5个关键技术
  • 目标检测模型选型指南:YOLO、Faster R-CNN、DETR性能对比与实战部署
  • 探索互动叙事创作:用Twine开启你的数字故事旅程
  • 无线传感器网络节能路由协议:从核心挑战到技术全景
  • 别让“假消息”半夜偷袭!2026年做品牌,手里没这张“数字盾牌”真不行
  • 生成式AI核心技术解析:从VAE、GAN到扩散模型与Transformer的演进与应用
  • 无花果矮砧密植:水肥一体化系统铺设全指南
  • 初创公司如何借助Taotoken快速验证多个AI模型的产品效果
  • 开放集识别中的不确定性估计:HolUE方法如何统一样本质量与图库模糊性
  • LLM技术如何革新渗透测试效率与深度
  • C++枚举法(三)练习题
  • M3u8视频下载神器:一键获取流媒体内容的终极解决方案