打印功能开发历程,解决百分之九十九的打印需求

项目经常要做到打印功能,经过一系列的折腾。记录一下吧。

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、图片

设计器:fastprint-designer: FastPrint Designer 是一款功能强大、直观易用的打印模板设计器,基于 Vue 3 + Vite 技术栈开发,专为企业和个人用户提供专业的打印模板设计解决方案。 该设计器支持拖拽式组件编辑,用户可以轻松添加文本、图片、条形码、二维码和表格等多种元素,并通过直观的属性面板实时调整样式和布局。核心功能包括实时预览、撤销/重做、复制/粘贴和键盘快捷键支持,让设计过程更加高效流畅。

客户端: FastPrintClient: FastPrint Client 是一个基于 Windows 平台的打印服务客户端,专为企业级应用设计,支持通过 WebSocket 和 HTTP 接口接收打印请求,实现模板化打印功能。

客户端开放HTTP和Websocke服务:

相关推荐
hez20101 天前
在 .NET 上构建超大托管数组
c#·.net·.net core·gc·clr
雨落倾城夏未凉6 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
唐青枫7 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫8 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
咕白m6258 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net
用户91721561902119 天前
C# 通信协议增量解析:用状态机处理半包和粘包
c#
小码编匠9 天前
C# 工控上位机必备:数据转换工具类与十个核心模块
后端·c#·.net
唐青枫11 天前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
Artech12 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf
Scout-leaf13 天前
C#摸鱼实录——IoC与DI案例详解
c#