在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">&nbsp;</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

 

posted @ 2015-08-24 14:54  IT Daren  阅读(30215)  评论(5编辑  收藏  举报