在jsp页面上直接打开PDF文件
1、在不需要使用插件,直接打开通过链接方式打开
- <%@ page language="java" import="java.util.*,java.io.*"
- pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme() + "://"
- + request.getServerName() + ":" + request.getServerPort()
- + path + "/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- </head>
- <%
- out.clear();
- out = pageContext.pushBody();
- response.setContentType("application/pdf");
- try {
- String strPdfPath = new String("D://200701010001.PDF");
- //判断该路径下的文件是否存在
- File file = new File(strPdfPath);
- if (file.exists()) {
- DataOutputStream temps = new DataOutputStream(response
- .getOutputStream());
- DataInputStream in = new DataInputStream(
- new FileInputStream(strPdfPath));
- byte[] b = new byte[2048];
- while ((in.read(b)) != -1) {
- temps.write(b);
- temps.flush();
- }
- in.close();
- temps.close();
- } else {
- out.print(strPdfPath + " 文件不存在!");
- }
- } catch (Exception e) {
- out.println(e.getMessage());
- }
- %>
- <body>
- <br>
- </body>
- </html>
2、 如果访问者的计算机上没有装acrobat reader,直接用iframe或者直接用链接打开,那就不是打开文档,而是直接下载了,为了防止下载,想像到媒体文件的播放方式,加上一些官方的docs,考虑用用object标签使用pdf插件嵌入ie中
- <HTML>
- <HEAD>
- <META http-equiv="Content-Type" content="text/html; charset=gb2312">
- <META http-equiv="Content-Style-Type" content="text/css">
- <META http-equiv="Content-Script-Type" content="text/javascript">
- <TITLE>Checking if Acrobat Reader installed (IE4+)...</TITLE>
- <SCRIPT for="window" event="onload"
- <!--
- document.all [
- document.all.PDFNotKnown ? "IfNoAcrobat" : "IfAcrobat"
- ] .style.display = "block";
- //--></SCRIPT>
- </HEAD>
- <BODY>
- <NOSCRIPT>
- Cannot determine if you have Acrobat Reader (or the full Acrobat)
- installed <FONT size="-1">(because JavaScript is unavailable or
- turned off)</FONT>.
- </NOSCRIPT>
- <DIV id="IfNoAcrobat" style="display:none">
- <a href="http://get.adobe.com/cn/reader/">你需要先安装Adobe Reader才能正常浏览文件,请点击这里下载Adobe Reader.</a>
- </DIV>
- <OBJECT type="application/pdf" width=0 height=0 style="display:none">
- <DIV id="PDFNotKnown" style="display:none"> </DIV>
- </OBJECT>
- <DIV id=showdiv
- style="Z-INDEX: 0; LEFT:10px; WIDTH: 990px; POSITION: absolute; TOP: -8px; HEIGHT: 10px">
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" height="700" border="0" top="-10" name="pdf">
- <param name="toolbar" value="false">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="MXL.pdf">
- </object>
- </DIV>
- </BODY>
- </HTML>
3、在网页中直接显示pdf格式的文件方便阅读。但是如果文件较大加载速度会很慢,另外如果客户端没有安装pdf阅读插件的话,也就看不了了,不过还是贴出来了,各取所需吗。(1.pdf要改成自己的pdf文件路径插入到页面文件中)
- Html代码
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- </object>
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- </object>
- 标准浏览器中:
- Java代码
- <object data="1.pdf" type="application/pdf" width="300" height="200">
- alt : <a href="1.pdf">test.pdf</a>
- </object>
- <object data="1.pdf" type="application/pdf" width="300" height="200">
- alt : <a href="1.pdf">test.pdf</a>
- </object>
- IE7.0以上版本的浏览器中可用如下方法,低版本的IE会显示两个Object区域
- Java代码
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- <object data="1.pdf" type="application/pdf" width="300" height="200">
- alt : <a href="1.pdf">test.pdf</a>
- </object>
- </object>
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- <object data="1.pdf" type="application/pdf" width="300" height="200">
- alt : <a href="1.pdf">test.pdf</a>
- </object>
- </object>
- 低版本浏览器中的处理方法1:
- Java代码
- <!--[if IE]>
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- </object>
- <![endif]-->
- <!--[if !IE]> <!-->
- <object data="1.pdf" type="application/pdf" width="800" height="1050">
- alt : <a href='http://get.adobe.com/cn/reader'>Adobe Reader.pdf</a>
- </object>
- <!--<![endif]-->
- <!--[if IE]>
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- </object>
- <![endif]-->
- <!--[if !IE]> <!-->
- <object data="1.pdf" type="application/pdf" width="800" height="1050">
- alt : <a href='http://get.adobe.com/cn/reader'>Adobe Reader.pdf</a>
- </object>
- <!--<![endif]-->
- 低版本浏览器中的处理方法2:通过CSS控制显示隐藏
- Html代码
- /* hides the second object from all versions of IE */
- * html object.hiddenObjectForIE { display: none; }
- /* display the second object only for IE5 Mac */
- /* IE Mac /*//*/
- * html object.hiddenObjectForIE { display: inline; }
- /**/
- /* hides the second object from all versions of IE */
- * html object.hiddenObjectForIE { display: none; }
- /* display the second object only for IE5 Mac */
- /* IE Mac /*//*/
- * html object.hiddenObjectForIE { display: inline; }
- /**/
- Html代码
- <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
- <param name="_Version" value="65539">
- <param name="_ExtentX" value="20108">
- <param name="_ExtentY" value="10866">
- <param name="_StockProps" value="0">
- <param name="SRC" value="1.pdf">
- <object data="1.pdf" type="application/pdf" width="300" height="200" class="hiddenObjectForIE">
- alt : <a href="1.pdf">test.pdf</a>
- </object>
- </object>
以上文章转自:http://blog.csdn.net/xxyy888/article/details/7259819#comments
在jsp页面上直接打开PDF文件的更多相关文章
- [置顶] 如何在浏览器中打开PDF文件并实现预览的思路与代码
编写项目遇到一个需要在浏览器中打开PDF文件的问题.最终实现效果如下: 其实也就是简单的在浏览器中实现一个打开pdf文件,并有类似预览功能的边框. 其实在网上经常见到类似的页面,在浏览器中打开pdf文 ...
- 设置Adobe Reader打开PDF文件保持记忆功能
设置Adobe Reader打开PDF文件保持记忆功能 打开菜单“编辑”->“首选项”. 选择种类中的“文档”,在“打开设置”区域勾上“重新打开文档时恢复上次视图设置(R)”,确定之后就可以在下 ...
- 页面直接导出为PDF文件,支持分页与页边距
将WEB页面直接导出为pdf文件是经常会用到的一个功能,尤其是各种报表系统.总结了一下目前几种主流的做法: 在后端用代码生成pdf文件,比如iText一类: 在后端抓取页面并生成pdf文件,比如pha ...
- 在linux终端下打开pdf文件
已经使用linux有很长的时间了,感觉linux的终端使用起来非常的方便.但是怎么在linux下用命令的方式打开pdf文件呢.我查了一下,打开pdf的命令是: evince [filename] 例如 ...
- jsp页面上读取MySQL数据库datetime时间显示问题
mysql数据库中时间字段选用了datetime,如果通过java实现在jsp页面上显示时间为"年-月-日 时:分"等格式,那么如下代码就会有不同的结果! 实体类中两个变量: p ...
- 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件
1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...
- react框架下,在页面内加载显示PDF文件,关于react-pdf-js的使用注意事项
react框架下,在页面内加载显示PDF文件,关于react-pdf-js的使用注意事项 之前做了一个需求,在注册账号的时候,让用户同意服务条款, 服务条款是一个PDF文件, 这就需要在react内加 ...
- 360浏览器兼容模式下jsp页面访问不到js文件
360浏览器兼容模式下jsp页面访问不到js文件 查看自己js中的语法问题,不要用ES6的语法,编译不了故找不到js文件 const var of 码出高效 java 比较 所有整型包装类对象之间值的 ...
- 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式
一.业务场景 公司的样本检测报告以React页面的形式生成,已调整为A4大小的样式并已实现分页,业务上需要将这个网页生成PDF文件,并上传到服务器,后续会将这个文件发送给客户(这里不考虑). 二.原来 ...
随机推荐
- Examples_07_06 无法下载android的sdk
在hosts里面配置. 74.125.237.1 dl-ssl.google.com 在AndroidManifest.xml中添加 <uses-feature android:name=&qu ...
- 获取EnterpriseLibrary企业库配置文件中ConnectionStrings(原创)
在使用企业类库时想取出单独企业配置文件中的连接字符串遍历,并放到自己的数据库处理类中,在查找了很久的资料后都没有找到,于是自己探索着写了一个,共享给大家以做参考: ConfigurationSourc ...
- inline-block元素的空白间距解决方法
方法1 <ul><li>item1</li><li>item2</li><li>item3</li><li&g ...
- wm_char
用于接收键盘输入的消息 int CXuexi2View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateS ...
- ADO.NET 新特性之SqlBulkCopy(批量插入大量数据)
转自:http://blog.csdn.net/huaer1011/article/details/2312361 在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还 ...
- bayes
from numpy import * import time starttime = time.time() def loadDataSet(): postingList = [['my', 'do ...
- Python3 如何优雅地使用正则表达式(详解三)
模块级别的函数 使用正则表达式也并非一定要创建模式对象,然后调用它的匹配方法.因为,re 模块同时还提供了一些全局函数,例如 match(),search(),findall(),sub() 等等.这 ...
- 使用国内镜像更新sdk方法
使用国内的镜像资源: 1.mirrors.neusoft.edu.cn //东软信息学院 2.ubuntu.buct.edu.cn/ubuntu.buct.cn //北京化工大学 3.mirrors. ...
- Ionic 测试针对Andorid平台
环境准备: (1)nodejs环境以及配置完成: y@y:~$ node -v v0.12.2 (2)Android SDK 环境变量已经配置完毕: export ANDROID_SDK=/home/ ...
- c++封装性
C++ code到运行程序 作为一个c++程序员这个应该是最应该知道的细节,简言之:编译----链接----可执行的程序.这里所说的细节主要是第一步的细节,编译器如何把c++代码编译成目标代码.概括的 ...