怎样实现FastReport浏览器直接打印无须预览呢?

2022最终版FastReport浏览器直接打印无须预览,之所以写这篇文章,是因为在两年前首发在 jhrs.com 的FastReport.net 打印功能这篇文章被很多网站转(偷)载,也是为了填一下2次封装FastReport.net 打印功能,Web项目网页支持直接打印这篇文章留下的坑,本文将会给出详细的代码以实现浏览器上并结合FastReport.Net实现无须预览直接打印功能。

无须预览直接打印也叫静默打印,即点一下按钮(当然你可以任意方式实现让打印机开始)打印机直接开始工作打印文件;在WinForm下很好实现,而web 静默打印一直是难点,且实现较为麻烦,这也是本文要解决的问题。

以下的文章是2年前和后来写的关于FastReport.Net的一些系列文章,原文还是值得翻出来看一下的,讲的是一些实现思路。本文会略过VS2022怎样打包安装程序,如果你是C#开发人员,会开发WinForm程序但不熟悉怎样打包安装程序,可以看看我之前写的WPF程序打包教程,它们是一个路数。

  1. 2次封装FastReport.net 打印功能,Web项目网页支持直接打印
  2. 自定义协议打开本地客户端程序遇上CSP内容安全策略
  3. VS2019打包WPF安装程序最新教程

源码解决方案说明

当你从github下载源码后,使用VS2022打开会看到如下的样式,如果你首次打开时JHRS.PrintClientSetup不能正常加载,说明你没有安装Installer Projects,参见VS2022 打不开vdproj项目解决办法,升级Installer Projects这篇文章解决即可。

web 打印控件封装源码解决方案

源码中提供了 2 个网站程序,分别是使用asp.net webform技术编写和asp.net core razor page编写,从命名上就已经区分了;JHRS.PrintClient是基于FastReport.net封装的客户端软件,引用了FastReport.net相关dll文件。

JHRS.PrintClientSetup是打包安装程序,为什么需要打包安装呢?那是因为在生产环境中你不可能将Debug或Release目录下的文件发给客户让他们使用,况且也使用不起来,而且还需要借助该打包程序往注册表写入自定义协议信息,具体在下面代码中会介绍。打包成安装程序后,即可在生产环境中的网页上提供下载功能,需要使用打印功能的客户端,只需要下载安装上该客户端即可,之后就可以打印了。

Github地址:Github源码地址

演示网站:跨浏览器直接打印功能示例

FastReport浏览器直接打印无须预览

我们在使用web技术开发管理系统,如医疗领域的HIS系统,企业的ERP系统,财务系统等等,都有打印需求,而正是各类系统和客户都有着各种不相同的打印需要,模板,格式,数据不一样等;市面上报表有多种产品,但我们选择了FastReport.Net做为解决打印需求的第三方组件,当然,商用它是付费的,不过对于公司来说,这都没有什么问题。

本文中所涉及到的FastReport.Net是使用的来自网上的古老的 2.0 版本,正式产品中使用,还是需要购买授权的。接下来就来说说怎样在web环境下结合FastReport.net 实现无预览直接打印功能,另外需要说明的是,我封装的客户端你可以自由的设置是否需要使用预览功能,客户端的功能点如下:

  1. 支持选择多打印机,并且可以设置默认打印机
  2. 支持无须预览直接打印,也可以启动客户端将预览功能开启。
  3. 跨浏览器支持,Chrome,IE,FireFox,Edge全都支持。
  4. 打印日志功能(保存在安装目录)
  5. 桌面快捷方式(一般无须打开,只有更改设置时才使用,如更换默认打印机,设置静默打印【无预览】)

要实现FastReport浏览器静默打印功能,我们需要做两步工作:

第一步是编写客户端程序,并且提供下载功能,用户首次使用时先安装客户端,首次点击打印会在浏览器上看到如下提示:

web 静默打印首次提示

web 静默打印首次提示

第二步是web应用程序界面上提供打印功能和获取打印数据接口,具体的实现会在源码中展示。

这里只转了部分内容,完整内容请看原文。

FastReport浏览器直接打印无须预览(2022终版)icon-default.png?t=LA92https://jhrs.com/2021/44698.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值