`

在jsp上显示pdf||网页直接打开PDF 在IE中显示pdf文档的方法及参数设置

阅读更多

一:在jsp上显示pdf  

<%@ page language="java" import="java.util.*,java.io.*"
pageEncoding="ISO-8859-1"%>
<%
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>


二:如果访问者的计算机上没有装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">
            你需要先安装Adobe Reader才能正常浏览文件,请点击这里下载Adobe Reader.
        </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>


三:在网页中直接显示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>  
分享到:
评论
4 楼 lxyoucan 2014-09-10  
特地注册账号来感谢
3 楼 AspirantHui 2011-11-10  
非常感谢,你提供的方法解决了我的问题!
2 楼 daoyuanjiao 2011-08-15  
如果用的是福昕PDF阅读器,该怎么弄呢?
1 楼 pandengzhegt 2011-04-11  
高人!

相关推荐

    pdf.js使用文件流预览pdf

    PDF.js是一个开源JavaScript库,由Mozilla开发,用于在Web浏览器中渲染PDF文档,无需依赖任何插件。这个库的目标是提供一个与平台和浏览器无关的解决方案,使得用户可以在任何支持HTML5的浏览器上查看PDF文件。本文...

    js插件方式打开pdf文件(浏览器pdf插件分享)

    在JSP网页中嵌入PDF文件显示主要有两种方案,一种是通过HTML链接直接嵌入PDF文件,另一种是使用JavaScript插件来加载PDF。下面将详细介绍这两种方案和一些流行的JavaScript PDF插件。 首先,讨论直接链接方案。在...

    jsp、web打印功能Lodpo6.0

    在Web应用程序开发中,打印功能是一项常见的需求,允许用户从浏览器直接打印网页内容或者特定的文档。Java Server Pages (JSP) 提供了这样的能力,通过集成第三方库,如Lodop,可以轻松实现Web打印。Lodop是一款高效...

    web项目引入PDF.js并添加水印禁止下载

    【描述】:本文主要介绍如何在Web项目中集成PDF.js库,实现PDF文件的预览,并添加水印功能,同时禁止用户通过常规方式下载或打印PDF文档。我们将详细讲解每个步骤,包括下载与引入PDF.js库、动态预览PDF、隐藏相关...

    兼容所有浏览器的快速Web打印控件

    在IT行业中,Web打印控件是一种关键的技术工具,它允许用户在不同的Web浏览器上便捷地打印网页内容。本文将深入探讨“兼容所有浏览器的快速Web打印控件”这一主题,结合给定的描述和标签,我们将关注C#、JSP、PHP这...

    LODOP打印控件ASP等网页可以用.rar

    1. **无插件打印**:用户无需安装任何浏览器插件,即可在网页上直接打印。 2. **跨平台支持**:兼容各种浏览器和操作系统,包括IE、Firefox、Chrome、Safari、Opera等。 3. **多样化打印内容**:支持文本、图片、...

    05-Status-Codes-Chinese.pdf

    1. **使用`response.setStatus(int statusCode)`**:这个方法用于设置状态码,但不建议直接使用整数作为参数,而应该使用定义在`HttpServletResponse`中的常量,如`HttpServletResponse.SC_OK`、`...

    DHTMLXTree中文开发指导.pdf

    此组件适用于多种服务器端技术,如Macromedia Cold Fusion、JSP和ASP.NET。DHTMLX Tree的显著特点包括: 1. **多浏览器/多平台支持**:DHTMLX Tree支持包括IE 5.5+、Safari、Mozilla 1.4+、Firefox 0.9+和Opera在内...

    richfaces_reference.pdf

    此文档旨在详细介绍RichFaces 3.3.3版本的功能特性、技术要求及如何在实际项目中使用该框架。 #### 二、技术要求 1. **支持的Java版本**:为了确保最佳兼容性与性能,RichFaces 3.3.3推荐使用Java SE 5或更高版本...

    SA800呼叫中心系统第三方开发手册(V1.2).pdf

    - **分机与坐席**: 在本文档中,分机与坐席被视为同一概念。 - **电话转接**: 当坐席A正在与客户B通话时,如果A需要将通话转给坐席C,可通过电话转接功能实现。 - **电话拦截(抢接)**: 如果分机A有电话打入并开始...

    建设工程消防质量数字管理系统用户手册分享.pdf

    - **基础数据设置**:设置系统的基础参数和规则。 2. **进入系统** 用户需使用支持IE 6.0以上版本的浏览器访问特定URL(http://59.175.218.82/FQMS/login.jsp),并确保将系统地址添加到IE的可信站点中,以保证...

    计算机网络安全技术:雷弛新闻系统的搭建.pdf

    IE浏览器不显示页面,可能需要调整浏览器的兼容性设置;路径参数错误,不允许使用"..",这可能导致路径遍历漏洞;后台功能异常,可能需要给网站目录添加写入和修改权限;以及在更新的Windows Server版本上,需要在...

    网管教程 从入门到精通软件篇.txt

     如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p 即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r 找到坏扇区并...

    ec7配置开关说明

    - 设置为 `1` 表示在 IE 中显示系统设置菜单。 - 设置为 `0` 表示不显示。 #### systemThemeTemplate.properties - **功能**:控制是否启用网站主题模板。 - **配置示例**:`##Ƿģվģ` - 如果需要启用网站主题...

Global site tag (gtag.js) - Google Analytics