Background
用户需要自定义设置标签或者单据内容。产品技术方案选用Web架构。用户环境复杂,操作系统版(Windows)本不一致,Browser兼容问题比较多。用户打印设备型号多样,部分设备配置低,设备老旧。Occasion
需要在Web端让用户自定义HTML模板内容打印。打印数据大,但是Browser占用可使用的内存资源有限。需要兼容不同的操作系统。需要兼容不同的Browser。需要兼容不同的打印设备。Solution
Web富文本编辑框生成HTML模板+插件打印(Web端作为打印Socket客户端,打印插件作为Socket服务端)Implementation
Web技术方案 富文本框: Vue+Ueditor 教程:Vue+Ueditor入门 GitHub:源码地址Web端与客户端Socket通信:if (window.WebSocket) {socket = new WebSocket("ws://127.0.0.1:8181");//127.0.0.1为本地Socket服务器地址,8181为端口号可以自己定义但是不要和其他的冲突
Web启动客户端:
<a href="sfcatprinter://"> <input name="打印" type="button"id="btn1" value="打印" /></a>//使用此项的前提是电脑注册表已经存在启动协议,sfcatprinter是协议名称
Web检查客户端是否安装:教程:参考教程 GitHub:源码地址Barcode生成:这个比较简单使用的是Jsbarcode百度一下您就知道了。打印插件技术方案
1.开发技术:C#,Winform(.Net 3.5不能使用太高版本的XP和XP之前的不能支持)
2.引用框架:WebSocket通信:Fleck;渲染引擎:Webkit
3.打印示意图:
Websocket通信文本协议格式:
{"LableWildth":65,"htmlcontent":<HTML>需要打印的HTML标签内容</HTML>,"ptinterModelName":”打印模板名称“}\\\这个文本传输使用Json是最好的选择,具体的字段和格式自己去定义就行了
Actual-Results
支持操作系统:Windows10、8、7;WindowsXP;Win 2000、、等支持.NET 3.5的操作系统;支持浏览器:Chrome、QQ、360安全&极速、火狐、搜狗等除IE以外的浏览器(目前未测试过Fleck和Ueditor在在IE内容的兼容情况,如果有合适的socket和富文本也是可以支持的);支持打印机:斑马系列、博思得系列、TSC系列,Godex系列、北洋系列、得力系列、Xprinter系列、霍尼韦尔系列、爱普生系列、优博讯系列等目前市场上所有的打印机型号;设计界面示例:打印插件实例:
Compare&Advantage
市面上成熟的标签套打方案一:Bartender
Weakness1:美国海鸥科技( seagull)产品,商用需要收费,使用破解版违法。
Weakness2:安装包上百兆,运行占用内存大,老旧操作系统或者设备安装使用比较卡。
Weakness3:支持二次开发的接口有限,支持C#、JS但是不支持Java
市面上成熟的标签套打方案二:Lodop&C-Lodop
Weakness1:中国梦泰尔的产品,商用需要收费,使用破解版违法。
Weakness2:部分老旧操作系统(XP)、部分型号比较偏比较旧的打印机型号打印存在图像缺失,对HTML5标签和SVG图像兼容较差。
以上方案可以处理以上产品上面的缺陷和不足。
Platform Integration
Web产品开发集成(上文方案)
支持.NET所有类型的GUI产品集成
支持Java Swing技术产品集成
支持移动端使用蓝牙&局域网产品集成