手机版

生产追溯系统后的条形码打印

时间:2021-08-23 来源:互联网 编辑:宝哥软件园 浏览:

前言

在之前的博客中,我介绍了如何在生产现场打印条形码。我们的生活中充满了条形码,一维码和二维码随处可见,更不用说一个从事制造加工的工厂了。然而,条形码的多样性和离线打印直接导致条形码控制困难,甚至严重的质量事故。在之前的版本中,我调用了WinForm中的函数,通过Web应用程序进行打印。WinForm与WebBrowser嵌套在一起,用于浏览网页。通过近几年的实际应用,这种方法基本能满足大多数要求,但还是美中不足。因为WebBrowser中显示的浏览器内核相对较低,所以很多样式不兼容。虽然网络上有一些方法可以改变这个问题(比如webkit、cef、修改注册表等。),总有一些问题。

新方案,告别WinForm网络浏览器

这次我们以生产线的卡通包装站为例来描述:

通常,操作人员会扫描多个彩盒条形码,数量从一个到多个不等。每个彩盒都有唯一的条形码或二维码。彩盒扫描完成后,系统应直接打印出相应的卡通贴纸,操作人员将卡通贴纸从打印机上撕下,粘贴在卡通盒子上。在此之前,我们需要提前制作好卡通贴纸的打印模板,并上传到系统中。操作界面如下,支持同一产品打印多张贴纸。

此时,我们需要编写一个Api来获取服务器上的模板文件和需要打印出来的数据列表。密钥代码如下:

string ServerUrl=XmlHelper。GetXmlReader(路径,‘Config’,‘Server’);字符串Api=XmlHelper。GetXmlReader(路径,‘Config’,‘Api’);//通过API action=get _ carton _ label carton _ sn=' _ carton _ sn,获取模板文件* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。httpelper http _ btw=new Httpelper();//创建Httphelper参数对象Httpitemitem _ btw=new Httpitem(){ URL=_ btw _ URL,//URL必需项contenttype=' application/JSON ',};http presult req _ result _ btw=http _ btw。getHTMl(item _ btw);字符串btw_str=req_result_btw。Htmljob eject obj _ btw=(job eject)JsonConvert。反序列化对象(btw _ str);数据表。JsonLib . todaytatable(obj _ btw[' msg '])。ToString());//通过API string _ Api _ URl=Api’获取模板文件* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *?action=get _ carton _ print _ list carton _ sn=' _ carton _ sn;httpelper http _ data _ list=new Httpelper();//创建Httphelper参数对象Httpitem _ data _ list=new Httpitem(){ URL=_ API _ URL,//URL必需项contenttype=' application/JSON ',};http req _ result _ data _ list=http _ data _ list。getHTMl(item _ data _ list);string print _ str=req _ result _ data _ list。Htmljob object obj=(job object)JsonConvert。反序列化对象(print _ str);string _Key=obj['msg']['key']。ToString();string _ Value=obj[' msg '][' Value ']。ToString();字符串SPlit KeY=“*”;字符串[]键=_键。Split(splitKey。ToCharArray(),StringSplitOptions。无);字符串[]值=_值。Split(splitKey。ToCharArray(),StringSplitOptions。无);for(int I=0;我决定。行。计数;I){ _ file _ URL=ServerURl ' app/cartonlabel/' dt。行[i]['LABEL_FILE']。ToString();_文件_名称=系统。Guid.NewGuid()。ToString() '_' dt。行[i]['LABEL_FILE']。ToString();网络。DownloadFile(_file_url,_ directory _ file _ name);_ print();}编写完}Api后,我们将发布它,并在本地指定一个文件夹供以后使用。现在我们还需要一个步骤,就是如何通过网页在客户端本地打印?大家都知道我们的网站是部署在服务器上,而不是客户端,但是打印出来的条形码必须出现在客户端的本地打印机上。这时,可以考虑通过网络共享打印机。但是这种方法非常不稳定,一些安全设置足以让你向内看,可以考虑用CassiniDev来实现。总体思路如下:

创建新批次或其他类型的程序。在项目中,将CassiniDev文件引用到。在本地新建一个服务实例并启动它。该服务可以通过以下代码启动:

新服务器(9001,'/',系统。输入输出路径组合。当前域。基本目录,“服务”),系统。Net.IPAddress.Parse('127.0.0.1 '),'',0,false,false);我们在打包之前启动了服务,我做了一个简单的界面,如下图所示:

此时,我们需要使用上一步发布的Api,并将发布的Api文件复制到Service目录下,该目录位于批处理程序的根目录下。到目前为止,所有的前期工作都已经完成,现在我们只需要调用本地的Api。我们选择了MO-00002作为工作单进行演示:

接下来,扫描条形码进行包装。本产品包装容量为每卡通盒4个彩盒。

当系统提示打印命令发送成功时,我们的打印机已经自动打印了标签,如下图所示:

结论

与以前的WebBrowser相比,这种方法可以更好地兼容样式表,比如H5,虽然打开的是同一个网站,但是同一个系统不需要分为网页和客户端;维护起来也比较方便。

以上是除了边肖介绍的制造追溯系统之外的条码打印,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:生产追溯系统后的条形码打印是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。