1、在不需要使用插件,直接打开通过链接方式打开

  1. <%@ page language="java" import="java.util.*,java.io.*"
  2. pageEncoding="UTF-8"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme() + "://"
  6. + request.getServerName() + ":" + request.getServerPort()
  7. + path + "/";
  8. %>
  9.  
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  11. <html>
  12. <head>
  13. <base href="<%=basePath%>">
  14. </head>
  15. <%
  16. out.clear();
  17. out = pageContext.pushBody();
  18. response.setContentType("application/pdf");
  19.  
  20. try {
  21. String strPdfPath = new String("D://200701010001.PDF");
  22. //判断该路径下的文件是否存在
  23. File file = new File(strPdfPath);
  24. if (file.exists()) {
  25. DataOutputStream temps = new DataOutputStream(response
  26. .getOutputStream());
  27. DataInputStream in = new DataInputStream(
  28. new FileInputStream(strPdfPath));
  29.  
  30. byte[] b = new byte[2048];
  31. while ((in.read(b)) != -1) {
  32. temps.write(b);
  33. temps.flush();
  34. }
  35.  
  36. in.close();
  37. temps.close();
  38. } else {
  39. out.print(strPdfPath + " 文件不存在!");
  40. }
  41.  
  42. } catch (Exception e) {
  43. out.println(e.getMessage());
  44. }
  45. %>
  46. <body>
  47. <br>
  48. </body>
  49. </html>

2、 如果访问者的计算机上没有装acrobat reader,直接用iframe或者直接用链接打开,那就不是打开文档,而是直接下载了,为了防止下载,想像到媒体文件的播放方式,加上一些官方的docs,考虑用用object标签使用pdf插件嵌入ie中

  1. <HTML>
  2. <HEAD>
  3. <META http-equiv="Content-Type" content="text/html; charset=gb2312">
  4. <META http-equiv="Content-Style-Type" content="text/css">
  5. <META http-equiv="Content-Script-Type" content="text/javascript">
  6. <TITLE>Checking if Acrobat Reader installed (IE4+)...</TITLE>
  7. <SCRIPT for="window" event="onload"
  8. <!--
  9. document.all [
  10. document.all.PDFNotKnown ? "IfNoAcrobat" : "IfAcrobat"
  11. ] .style.display = "block";
  12. //--></SCRIPT>
  13. </HEAD>
  14. <BODY>
  15. <NOSCRIPT>
  16. Cannot determine if you have Acrobat Reader (or the full Acrobat)
  17. installed <FONT size="-1">(because JavaScript is unavailable or
  18. turned off)</FONT>.
  19. </NOSCRIPT>
  20. <DIV id="IfNoAcrobat" style="display:none">
  21. <a href="http://get.adobe.com/cn/reader/">你需要先安装Adobe Reader才能正常浏览文件,请点击这里下载Adobe Reader.</a>
  22.  
  23. </DIV>
  24. <OBJECT type="application/pdf" width=0 height=0 style="display:none">
  25. <DIV id="PDFNotKnown" style="display:none">&nbsp;</DIV>
  26. </OBJECT>
  27. <DIV id=showdiv
  28. style="Z-INDEX: 0; LEFT:10px; WIDTH: 990px; POSITION: absolute; TOP: -8px; HEIGHT: 10px">
  29. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" height="700" border="0" top="-10" name="pdf">
  30. <param name="toolbar" value="false">
  31. <param name="_Version" value="65539">
  32.  
  33. <param name="_ExtentX" value="20108">
  34.  
  35. <param name="_ExtentY" value="10866">
  36.  
  37. <param name="_StockProps" value="0">
  38.  
  39. <param name="SRC" value="MXL.pdf">
  40. </object>
  41. </DIV>
  42. </BODY>
  43. </HTML>

3、在网页中直接显示pdf格式的文件方便阅读。但是如果文件较大加载速度会很慢,另外如果客户端没有安装pdf阅读插件的话,也就看不了了,不过还是贴出来了,各取所需吗。(1.pdf要改成自己的pdf文件路径插入到页面文件中)

  1. Html代码
  2. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  3. <param name="_Version" value="65539">
  4. <param name="_ExtentX" value="20108">
  5. <param name="_ExtentY" value="10866">
  6. <param name="_StockProps" value="0">
  7. <param name="SRC" value="1.pdf">
  8. </object>
  9.  
  10. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  11. <param name="_Version" value="65539">
  12. <param name="_ExtentX" value="20108">
  13. <param name="_ExtentY" value="10866">
  14. <param name="_StockProps" value="0">
  15. <param name="SRC" value="1.pdf">
  16. </object>
  17. 标准浏览器中:
  18.  
  19. Java代码
  20. <object data="1.pdf" type="application/pdf" width="300" height="200">
  21. alt : <a href="1.pdf">test.pdf</a>
  22. </object>
  23.  
  24. <object data="1.pdf" type="application/pdf" width="300" height="200">
  25. alt : <a href="1.pdf">test.pdf</a>
  26. </object>
  27. IE7.0以上版本的浏览器中可用如下方法,低版本的IE会显示两个Object区域
  28.  
  29. Java代码
  30. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  31. <param name="_Version" value="65539">
  32. <param name="_ExtentX" value="20108">
  33. <param name="_ExtentY" value="10866">
  34. <param name="_StockProps" value="0">
  35. <param name="SRC" value="1.pdf">
  36. <object data="1.pdf" type="application/pdf" width="300" height="200">
  37. alt : <a href="1.pdf">test.pdf</a>
  38. </object>
  39. </object>
  40.  
  41. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  42. <param name="_Version" value="65539">
  43. <param name="_ExtentX" value="20108">
  44. <param name="_ExtentY" value="10866">
  45. <param name="_StockProps" value="0">
  46. <param name="SRC" value="1.pdf">
  47. <object data="1.pdf" type="application/pdf" width="300" height="200">
  48. alt : <a href="1.pdf">test.pdf</a>
  49. </object>
  50. </object>
  51. 低版本浏览器中的处理方法1
  52.  
  53. Java代码
  54. <!--[if IE]>
  55. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  56. <param name="_Version" value="65539">
  57. <param name="_ExtentX" value="20108">
  58. <param name="_ExtentY" value="10866">
  59. <param name="_StockProps" value="0">
  60. <param name="SRC" value="1.pdf">
  61. </object>
  62. <![endif]-->
  63. <!--[if !IE]> <!-->
  64. <object data="1.pdf" type="application/pdf" width="800" height="1050">
  65. alt : <a href='http://get.adobe.com/cn/reader'>Adobe Reader.pdf</a>
  66. </object>
  67. <!--<![endif]-->
  68.  
  69. <!--[if IE]>
  70. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  71. <param name="_Version" value="65539">
  72. <param name="_ExtentX" value="20108">
  73. <param name="_ExtentY" value="10866">
  74. <param name="_StockProps" value="0">
  75. <param name="SRC" value="1.pdf">
  76. </object>
  77. <![endif]-->
  78. <!--[if !IE]> <!-->
  79. <object data="1.pdf" type="application/pdf" width="800" height="1050">
  80. alt : <a href='http://get.adobe.com/cn/reader'>Adobe Reader.pdf</a>
  81. </object>
  82. <!--<![endif]-->
  83. 低版本浏览器中的处理方法2:通过CSS控制显示隐藏
  84.  
  85. Html代码
  86. /* hides the second object from all versions of IE */
  87.  
  88. * html object.hiddenObjectForIE { display: none; }
  89. /* display the second object only for IE5 Mac */
  90. /* IE Mac /*//*/
  91. * html object.hiddenObjectForIE { display: inline; }
  92. /**/
  93.  
  94. /* hides the second object from all versions of IE */
  95.  
  96. * html object.hiddenObjectForIE { display: none; }
  97. /* display the second object only for IE5 Mac */
  98. /* IE Mac /*//*/
  99. * html object.hiddenObjectForIE { display: inline; }
  100. /**/
  101.  
  102. Html代码
  103. <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="1050" border="0">
  104. <param name="_Version" value="65539">
  105. <param name="_ExtentX" value="20108">
  106. <param name="_ExtentY" value="10866">
  107. <param name="_StockProps" value="0">
  108. <param name="SRC" value="1.pdf">
  109. <object data="1.pdf" type="application/pdf" width="300" height="200" class="hiddenObjectForIE">
  110. alt : <a href="1.pdf">test.pdf</a>
  111. </object>
  112. </object>

以上文章转自:http://blog.csdn.net/xxyy888/article/details/7259819#comments

在jsp页面上直接打开PDF文件的更多相关文章

  1. [置顶] 如何在浏览器中打开PDF文件并实现预览的思路与代码

    编写项目遇到一个需要在浏览器中打开PDF文件的问题.最终实现效果如下: 其实也就是简单的在浏览器中实现一个打开pdf文件,并有类似预览功能的边框. 其实在网上经常见到类似的页面,在浏览器中打开pdf文 ...

  2. 设置Adobe Reader打开PDF文件保持记忆功能

    设置Adobe Reader打开PDF文件保持记忆功能 打开菜单“编辑”->“首选项”. 选择种类中的“文档”,在“打开设置”区域勾上“重新打开文档时恢复上次视图设置(R)”,确定之后就可以在下 ...

  3. 页面直接导出为PDF文件,支持分页与页边距

    将WEB页面直接导出为pdf文件是经常会用到的一个功能,尤其是各种报表系统.总结了一下目前几种主流的做法: 在后端用代码生成pdf文件,比如iText一类: 在后端抓取页面并生成pdf文件,比如pha ...

  4. 在linux终端下打开pdf文件

    已经使用linux有很长的时间了,感觉linux的终端使用起来非常的方便.但是怎么在linux下用命令的方式打开pdf文件呢.我查了一下,打开pdf的命令是: evince [filename] 例如 ...

  5. jsp页面上读取MySQL数据库datetime时间显示问题

    mysql数据库中时间字段选用了datetime,如果通过java实现在jsp页面上显示时间为"年-月-日  时:分"等格式,那么如下代码就会有不同的结果! 实体类中两个变量: p ...

  6. 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件

    1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...

  7. react框架下,在页面内加载显示PDF文件,关于react-pdf-js的使用注意事项

    react框架下,在页面内加载显示PDF文件,关于react-pdf-js的使用注意事项 之前做了一个需求,在注册账号的时候,让用户同意服务条款, 服务条款是一个PDF文件, 这就需要在react内加 ...

  8. 360浏览器兼容模式下jsp页面访问不到js文件

    360浏览器兼容模式下jsp页面访问不到js文件 查看自己js中的语法问题,不要用ES6的语法,编译不了故找不到js文件 const var of 码出高效 java 比较 所有整型包装类对象之间值的 ...

  9. 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式

    一.业务场景 公司的样本检测报告以React页面的形式生成,已调整为A4大小的样式并已实现分页,业务上需要将这个网页生成PDF文件,并上传到服务器,后续会将这个文件发送给客户(这里不考虑). 二.原来 ...

随机推荐

  1. Examples_07_06 无法下载android的sdk

    在hosts里面配置. 74.125.237.1 dl-ssl.google.com 在AndroidManifest.xml中添加 <uses-feature android:name=&qu ...

  2. 获取EnterpriseLibrary企业库配置文件中ConnectionStrings(原创)

    在使用企业类库时想取出单独企业配置文件中的连接字符串遍历,并放到自己的数据库处理类中,在查找了很久的资料后都没有找到,于是自己探索着写了一个,共享给大家以做参考: ConfigurationSourc ...

  3. inline-block元素的空白间距解决方法

    方法1 <ul><li>item1</li><li>item2</li><li>item3</li><li&g ...

  4. wm_char

    用于接收键盘输入的消息 int CXuexi2View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateS ...

  5. ADO.NET 新特性之SqlBulkCopy(批量插入大量数据)

    转自:http://blog.csdn.net/huaer1011/article/details/2312361 在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还 ...

  6. bayes

    from numpy import * import time starttime = time.time() def loadDataSet(): postingList = [['my', 'do ...

  7. Python3 如何优雅地使用正则表达式(详解三)

    模块级别的函数 使用正则表达式也并非一定要创建模式对象,然后调用它的匹配方法.因为,re 模块同时还提供了一些全局函数,例如 match(),search(),findall(),sub() 等等.这 ...

  8. 使用国内镜像更新sdk方法

    使用国内的镜像资源: 1.mirrors.neusoft.edu.cn //东软信息学院 2.ubuntu.buct.edu.cn/ubuntu.buct.cn //北京化工大学 3.mirrors. ...

  9. Ionic 测试针对Andorid平台

    环境准备: (1)nodejs环境以及配置完成: y@y:~$ node -v v0.12.2 (2)Android SDK 环境变量已经配置完毕: export ANDROID_SDK=/home/ ...

  10. c++封装性

    C++ code到运行程序 作为一个c++程序员这个应该是最应该知道的细节,简言之:编译----链接----可执行的程序.这里所说的细节主要是第一步的细节,编译器如何把c++代码编译成目标代码.概括的 ...