jsp有关在ie中打开pdf文件的问题

背景:

在基于BS模式的项目中,我们一般对于报表、需要打印的数据,都是直接在ie中以pdf中显示出来的,这是因为ie调用了pdf插件,这样才可以正确显示。比如:页面提供一个按钮,打印当前页面数据,点击后,即会在ie中调用pdf插件,以Pdf格式显示这些数据,然后执行打印。

问题产生:

在一个项目中打印报表时,出现打印部分数据,数据在ie中以pdf形式显示没有问题,如果打印全部,就出现无法显示数据,jsp页面报500的错误

说明:Jsp中显示pdf数据,一般就是在一个单独页面设置 response.setContentType("application/pdf");然后把要显示的数据以字节流的形式,输出。

分析:

经过多次试验,对比,排除程序等其他可能的原因,最后发现 当操作系统安装的是一些其他的pdf软件时,在ie下存在一个问题,即如果要显示的数据为两页以上,那么就会出现在ie中无法以Pdf格式显示数据,打开的ie会显示无法打开该页面即500错误;但是如果显示的数据在一页以内,即可以在ie中以pdf的格式显示数据。说明:这个错误是本人在ie下测试过的,这里前提是没有安装adobe 的pdf软件,而是安装其他的pdf软件,如:在ie下,安装了adobe pdf也不会出现这个问题,不过如果显示两页以上数据,不会显示在ie中了,而是重新以pdf软件打开,显示数据;如果只显示一页数据,数据会在ie中以pdf形式显示数据,完全正常。

经过分析,本人怀疑,可能是下面的原因:

在jsp中为了显示pdf数据,设置了jsp的头格式为: response.setContentType("application/pdf");这样就会调用和ie关联的pdf软件,显示数据,如果数据可以在一页内显示,那么当前的Jsp就可以正常显示了,但是如果数据超过了一页,那么jsp页面没办法,显示那么多的数据,就比如要单独调用pdf软件,打开数据。如果可以正常调用pdf软件,如adobe,那么就会以adobe pdf软件的形式打开数据,如果调用pdf软件失败,那么就会在jsp页面出现无法显示数据的问题。

解决办法:

这是一个普遍性的问题,如果安装了adobe 的pdf软件,那么不会出现这样的问题。所以建议安装adobe的pdf软件,以从根本上解决这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值