大家好,欢迎来到IT知识分享网。
最近有个项目需要网页调用本地标签打印设备(RFID),设备方提供了动态链接库文件(dll),项目拿到手后就开始上网各种搜索,结合自己掌握的知识,自己总结出一个方案。欢迎各位大牛探讨!
方案的实现思路
技术栈js、C#(winform);利用websocket服务接收页面的打印请求,调用dll实现控制打印设备进行打印并写入RFID芯片,但这个方案有个不方便的地方,就是需要用户在打印前先去启动这个打印服务程序。后面去到现场实施部署时,发现一个现象完美将这个坑避开了,后面会分享给大家!
实现过程
1、实现websocket服务端
//启动websocket服务 private void websocketServer() { webSocketServer.NewMessageReceived += WebSocketServer_NewMessageReceived; if (!webSocketServer.Setup(IP, port)) { this.label1.Text = "设置服务监听失败!"; } if (!webSocketServer.Start()) { this.label1.Text = "启动服务监听失败!"; } this.label1.Text = "启动打印服务成功!"; }
2、解析前端请求
//接收前端请求的Json,并调用打印方法打印标签 private void WebSocketServer_NewMessageReceived(WebSocketSession session, string value) { JObject jobj = (JObject)JsonConvert.DeserializeObject(value); string gdmc = jobj["xxxx"].ToString(); }
3、打印
Printdll.PTK_DrawText_TrueType(220, 60, 56, 0, "微软雅黑", 1, 300, false, false, false, "XXXXXXXXX");
4、前端请求
function PrintRequest() { var ws = new WebSocket("ws://IP:port"); ws.onopen = function(){ //当WebSocket创建成功时,触发onopen事件 var res = Json; console.log("open"); ws.send(res); //将消息发送到服务端 } }
5、效果
最后告诉大家那个坑怎么避的,那个打印设备有点小贵,客户只采购了两台,所以只能采用共享打印,然后就固定了一台电脑作为打印服务器,所以就把坑给完美避了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/59274.html