IE浏览器打印报表,后台依赖JasperReport生成报表,如何静默打印?

请大佬们帮帮忙,出出主意,谢谢拉

 

需求: 在IE中点击按钮后,后台生成word或pdf返回,IE调用打印机进行自动打印

 

后台: 使用强大的报表生成依赖 JasperReport ,版本 jasperreports-3.7.6.jar(项目比较旧)

页面:使用的是jsp页面

(现阶段)使用window.open()方法打开一个pdf或office,客户手动进行打印

(期望)  点击打印按钮,后台返回文件流,js调用打印机直接打印

问题: 1. 当前没有合适的ActiveX控件能直接打印word和pdf,

            2. 使用window.open()方法打开pdf后 手动打印,字体在纸张上不清晰

            3. 生成word并打开后,手动打印可能打印出客户无心按下键盘的错误数据

 

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

新建文档,此时生成的是jrxml格式,其实这个就相当于java中的源码一样,而我们最终使用的是编译后的.jasper文件。

此时可以看到文档分为几个板块,作用分别如下:

title:只在整个报表的第一页的最上面部分显示,除了第一页外,不管报表有几个页面,其余的页面都不会再出现该部分的内容。

pageHeader:将会在整个报表中的每一个页面中都会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader 中的内容将显示在title段下面,除了第一页以外的其他所有页面中pageHeader 中的内容将在显示在页面的最上端。

columnHeader:针对detail段的表头段,一般情况下在这个段中画报表中列的列标题。每页均会出现一次。从字面意思就可以理解这是一个表格的表格头。
detail:报表内容段,在这个段中设计报表中需要重复出现的内容,detail 段中的内容每页都会出现。
columnFooter:detail段的结尾,每页只会出现一次。
pageFooter:显示在所在页面的最下端,每页都显示,最后一页由lastPageFooter替代。
lastPageFooter:最后一页页尾段内容,只在最后一页出现一次。
summary:表格的合计段,出现在整个报表的最后一页中的detail段的后面,一般用来统计报表中某个或某几个字段的合计值。