IE浏览器的静默打印与踩坑

简介: IE浏览器的静默打印与踩坑

记录下踩过的坑。第一次写,可能很啰嗦,格式也难看,请见谅。

需求:在IE浏览器下,一键静默打印多个合同。java环境。

背景:文档保存在另一台服务器上,无法从存着文档的服务器直接把文档保存到现在的产品所用的服务器上,所以把word文档变成HTML字符串,通过调用接口返回到现在开发所用的服务器上。这是别人做的工作,我这边的需求就是要服务端接收到HTML后,把里面的所有文档一键静默打印。(因为一些需求,不考虑在页面中打印,文档最后是要下载在客户端之后打印的。)

开始考虑的是html转为word的技术,使用POI。把生成的word文档保存在服务端,再把文档使用字节流输出到客户端,客户端接收到流之后保存在本地再打印。生成word可以在java里生成,也可以在前端用插件生成。但是需求中有一个条件,只能点击一次按钮。前端的插件每次保存在本地都会弹出保存框,无法解决这个问题,该方法作罢,最后是选择使用java生成word文档。

如果所有合同是一个长字符串的话,那么一份合同结束后肯定是要分页的。前期的需求是多个文档最后要生成一个文档的。

如果把一个长字符串生成一个大的word文档同时中间分页,和先把字符串分开,生成多个word文档再合并成一个文档这两种情况下,无法分页。试了试,如果先右键–>新建,手动建立一个word文档,再在向其中填充内容的时候可以达到分页效果,如果是直接生成的word文档则里面的分页不起作用,弄了很久没有解决这个问题,猜测是手动建立的文档和使用POI建立的文档有某些差别。大神知道的请指教。

以上问题无法解决,又赶进度,最后修改的是需求。。。。(捂脸)不要求只生成一个文档了,而是调用多次接口,每次返回的是一份合同的html。(请不要纠结为什么调用多次接口和为什么不返回一个集合啥的。。。。我也不知道。。。。人家怎么说我怎么弄吧。)

在生成的word文档中,格式很麻烦,在别人把文档转为HTML的时候用的是另一个产品里封装的插件,我这边用不了。所以这边对于POI来说,有的HTML标签无法识别,测试了很多次把所有会出现的错误标签替换掉。(这边有自己的jar包库,一般是使用库里的包,如果要新提上去一个包很麻烦,需要层层审批,最后在库里找了个POI的包,版本很低)唉。。。。。。(这个问题在页面中直接打印的话就不会出现,表格的格式正确)

标签搞定,但是又出现了问题,打印出来的时候,在纯文字的时候格式就没问题,如果HTML中有表格的话,表格的格式就不统一,不管是使用office和wps或者使用wps不同版本的格式都会有细小差别。。。。。。心累。。。。快到交付了,这一个版本先凑合用吧。。。。。下一个版本不行改为生成pdf应该就没这么多事了吧。。。。。

还有静默下载和打印的功能,简单说下吧。因为是一键打印,不能点击下载按钮和打印按钮,幸亏是在IE浏览器的环境下还是可以实现的。

在IE浏览器中使用ActiveXObject控件,new ActiveXObject(“中间写不同参数可以实现不同的功能”),这个不细说了,可以上网查一下。包括判断当前浏览器是否是IE浏览器;判断wps或office能否操作(简单说就是看你安没安装);静默下载;静默打印(其实打印的时候word文档还是打开了的,只是没有显示出来);操作本地文件夹和文件,比如打印完之后要把本地的文件删除等。该控件功能挺多,可惜仅在IE中支持。

最后一个要说的,就是IE的安全设置,看到静默下载自然会想到安全问题,IE中默认是不允许的(包括ActiveXObject)。这个功能要先在IE的安全设置中进行一些设置,包括允许ActiveX控件使用,添加信任站点,可以通过域访问数据源等设置。最后写了一个vbs扔到共享上去了,这个功能先是内部人使用的,后面让客户去用感觉会出现其他坑。

还是要吐槽一下这奇葩的需求和我们的开发环境实在限制诸多,最后好歹是弄出来了,可是感觉真的不好用。。。。


目录
相关文章
|
6月前
|
Web App开发 前端开发 JavaScript
|
1天前
解决win10无法打开自带的IE浏览器的问题
解决win10无法打开自带的IE浏览器的问题
7 0
|
1月前
|
存储 机器人
在阿里云RPA中,你可以通过以下步骤来更改默认唤醒IE浏览器的地址
【2月更文挑战第28天】在阿里云RPA中,你可以通过以下步骤来更改默认唤醒IE浏览器的地址
20 1
|
7月前
|
Web App开发 XML 编解码
IE浏览器下载文件中文文件名乱码问题解决
IE浏览器下载文件中文文件名乱码问题解决
85 0
|
4月前
|
Web App开发 JavaScript 前端开发
JavaScript在IE和标准浏览器下的兼容性处理
JavaScript在IE和标准浏览器下的兼容性处理
41 0
|
5月前
|
前端开发
border-radius 兼容 IE8浏览器
border-radius 兼容 IE8浏览器
40 1
|
5月前
|
Web App开发 移动开发 安全
IE浏览器,和Edge浏览器
IE浏览器,和Edge浏览器
|
5月前
|
JavaScript
兼容IE浏览器
兼容IE浏览器
32 0
|
6月前
|
Windows
window10 自带浏览器ie11无法启动 问题解决
这几天有一个新项目,然后再做准备工作的时候需要用到IE浏览器,然后我电脑是win10的,发现打不开IE浏览器,怎么点都没有用,后来我找找了相关资料,大家可以参考一下,毕竟出现的问题不同
171 0
|
7月前
|
JSON JavaScript 前端开发
基于FlashWavRecorder实现IE11浏览器录音后用科大讯飞转文字
基于FlashWavRecorder实现IE11浏览器录音后用科大讯飞转文字
58 0

热门文章

最新文章