zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    SOM 的两种算法
    moco响应结果浏览器访问乱码
    moco的启动及第一个demo
    IDEA 解决 terminal 中文乱码
    moco框架的下载
    ExtentReport测试报告的使用
    testNG超时测试
    testNG 多线程测试(xml文件实现)
    testNG @DataProvider参数化
    testNG xml文件参数化
  • 原文地址:https://www.cnblogs.com/mengzw/p/4754757.html
Copyright © 2011-2022 走看看