背景:
在基于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软件,以从根本上解决这个问题。
分享到:
相关推荐
首先,IE浏览器在较早的版本中默认支持直接打开PDF文件,但随着Adobe Reader的更新和安全考虑,这种方式逐渐被浏览器内置的安全策略限制。为了在现代IE浏览器中实现这一功能,开发者通常会使用以下两种方法: 1. **...
总的来说,通过使用PDF.js的文件流预览功能,开发者可以创建一个高效且兼容性强的Web应用,让用户在浏览器中流畅地预览PDF文件。这在处理大量或大尺寸PDF时尤其有益,因为它减少了内存占用,提高了加载速度。在实际...
在JSP网页中嵌入PDF文件显示主要有两种方案,一种是通过HTML链接直接嵌入PDF文件,另一种是使用JavaScript插件来加载PDF。下面将详细介绍这两种方案和一些流行的JavaScript PDF插件。 首先,讨论直接链接方案。在...
response.setCharacterEncoding("UTF-8"),在 IE 中显示该页面时,在 IE 的菜单中选择“查看-->编码”中可以查看到是“Unicode(UTF-8)”,而在 JSP 中设置 response.setCharacterEncoding("GBK"),在 IE 中显示该...
",以表明将下载的文件作为附件,结果是IE浏览器将会提示另存文件,而不是自动打开这个文件(IE浏览器一般根据下载的文件扩展名决定执行什么操作,扩展名为doc的将用word程序打开,扩展名为pdf的将用acrobat程序打开...
- 为了使IE浏览器能直接打开DOC、XLS、PDF等类型的文件,需要在`WEB-INF/web.xml`文件中添加相应的`<mime-mapping>`配置,例如: ```xml <extension>doc <mime-type>application/msword <extension>xls ...
在提供的代码中,还包含了对打印相关操作的JavaScript封装。具体如下: - printsetup():此函数用于调用页面设置,参数为(8,1),它通常会调用浏览器的打印设置界面。 - printpreview():调用参数为(7,1)的打印预览...
在给定文件内容中,我们可以看到许多与Web网站测试相关的关键点和知识点。 首先,文档提到了CSS和按钮元素(button),这暗示了界面样式的测试和按钮功能性的测试。Web开发人员通常会使用CSS来控制网页的外观和格式...
在`viewer.jsp`中,你可以通过设置`productFilePath`变量来指定PDF文件的路径,这将由后台Action传递。在`viewer.js`的`webViewerInitialized`函数中,将`queryString`替换为`productFilePath`,这样就可以根据不同...
JavaScript是一门重要的前端编程语言,以其在浏览器中的广泛应用而闻名。它允许开发者通过编写脚本来实现网页的动态特效、表单验证等功能。本教程旨在帮助初学者逐步了解和掌握JavaScript的基础知识,以及相关的开发...
文档提供了详细的解决步骤,包括在 IE 浏览器中设置可信站点、Activex控件和插件的设置、下载农行口令卡客户包等等。 知识点一: nông行网银点确认支付没反应的原因 农行网银点确认支付没反应的主要原因是由于...
实验中,学生需要了解恶意代码的概念,学习如何在Windows 2000/XP操作系统上,使用Java Standard Edition 1.4.0以上的JDK、MySQL数据库、JSP开发语言、Tomcat Web服务器和IE5.0或IE6.0浏览器进行环境配置。...
如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart 创建和删除硬盘...
尽管如此,在服务端使用时需确保安装了相应的办公软件,在客户端使用则需考虑IE安全设置问题。 #### 三、在ASP.NET中使用Excel进行数据导出 文章重点介绍了在ASP.NET中使用Excel进行数据导出的具体步骤: 1. **...
`jsPDF`可以用于生成PDF文件,然后让用户选择打印或下载。 总的来说,实现JS打印和预览功能涉及到JavaScript的基本方法、HTML5特性、CSS页面布局以及可能的第三方库。根据具体需求,开发者可以选择合适的方法或工具...