项目经常要做到打印功能,经过一系列的折腾。记录一下吧。
1、C# winfrom+aspose本地模版打印客户端+web页面打印。
用winfrom开发一个本地客户端,集成模版和通信服务器。web页面调用,来实现打印功能,能实现功能,但是不利于后期维护。
2、C# winfrom本地打印客户端,springboot+aspose,维护客户模版,服务器生成pdf+问页面打印。
这种方式基本能满足大部分的业务需求了,但是对于设计模版的用户有要求,不熟悉word和模版占位符的,实在是用不了,而且模版样式比较抽象。如果设计模版是专业人员,这种方式其实是最好的了,word的尺寸这些完全是可控的,通过word样式来设计打印的结果。
3、web打印模版设计器+C# winfrom本地打印客户端,解析模版数据,填充模版并打印。
这种方式是为了解决方式2没有专业人员设计模版的问题,可以通过页面拖拽达到设计打印模版的目的,缺点也比较明显,设计器的坐标和打印机实际出来的坐标无法百分之百准确,多少有点误差。但是这种误差对于营运成本来说可以忽略了。
开源项目FastPrint地址,可以基于这个项目来构建自己的打印业务,全部都是开源的,可以自己修改。目前实现的有:
1、文本
2、表格
3、一维码
4、二维码
5、图片


客户端开放HTTP和Websocke服务:

