jsp打开PDF

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp打开PDF相关的知识,希望对你有一定的参考价值。

A.jsp点击B超链接,进入ACTION,生成PDF
PDF路径为C:\\itext.pdf

如何在点击B超链接时,直接用阅读工具(如Adobe Reader)打开C:\\itext.pdf

在action该如何写代码?

PDF 文件的 MIME 类型是 "application/pdf"。要用 servlet 来打开一个 PDF 文档,需要将 response 对象中 header 的 content 类型设置成 "application/pdf":

// MIME type for pdf doc
res.setContentType( "application/pdf" );

若要打开一个 Microsoft Word 文档,你就要将 response 对象的 content 类型设置成 "application/msword":

// MIME type for MSWord doc
res.setContentType( "application/msword" );

如果是一个 Excel 文档,则使用 MIME 类型 "application/vnd.ms-excel"。其中 vnd 表示该应用程序的制造者,必须将它包含在 MIME 类型里才能够打开该类型文档。
有时候浏览器不能识别文档的 MIME 类型。通常这是由于没有安装这些文档需要的插件而导致的。这种情况下,浏览器会弹出一个对话框,询问用户是否需要打开该文件或是将它保存到本地磁盘上。
参考技术A 在jsp中打开pdf的实现原理是在页面上输出adobe reader对象。
<OBJECT type="application/pdf" width=0 height=0 style="display:none">
<DIV id="PDFNotKnown" style="display:none"> </DIV>
</OBJECT>
如果没有安装就要提示:
<DIV id="IfNoAcrobat" style="display:none">
你需要先安装Adobe Reader才能正常浏览文件,请点击<a href=http://get.adobe.com/cn/reader/download/?installer=Reader_11.0_Chinese_Simplified_for_Windowstarget="_blank">这里</a>下载Adobe Reader.
</DIV>

(JSP)关于手机端(尤其是苹果手机)pdf文件无法打开的解决方案

流的方式下载附件

<!--
@author :daisy
@date : 2011-12-04
@note : 从数据库中读取BLOB图片显示
-->
<%@page import="com.cwai.dao.DBManager"%>
<%@ page contentType=" text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
  out.clear();
  out = pageContext.pushBody();
  //读取blob字段的图片内容,将其显示
  String xh = request.getParameter("xh");
  String wjm = request.getParameter("wjm"); 
  wjm = java.net.URLEncoder.encode(wjm, "UTF-8");
  try {
    ServletOutputStream sos = null;
    String sql = "SELECT WJNR WJNR FROM FJ_SWYB WHERE XH = ‘" + xh+"‘";
    System.out.println(sql);
    byte[] blob_array = DBManager.getBlob(sql, null);
    try {

      //修改前
      //response.setContentType("multipart/form-data");
      //修改后
      response.setContentType("multipart/form-data");
      String kzm = wjm.substring(wjm.lastIndexOf(".")+1);
      if("PDF".equals(kzm.toUpperCase()) ){
        response.setContentType("application/pdf");
      }


      String downFileName = new String(wjm.getBytes("GB2312"),"iso8859-1");

      //注意:attachment \inline 两者的区别
      response.setHeader("Content-Disposition", "attachment;filename=\""+downFileName+"\"");
      sos = response.getOutputStream();
      System.out.println("blob_array-lenth:----" + blob_array.length);
      sos.write(blob_array);
      sos.flush();
      sos.close();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (sos != null) sos.close();
    }
    return;
  } catch (Exception ex) {
    ex.printStackTrace();
}
response.sendError(404);
%>













































以上是关于jsp打开PDF的主要内容,如果未能解决你的问题,请参考以下文章

(JSP)关于手机端(尤其是苹果手机)pdf文件无法打开的解决方案

jsp 如何通过js来打印pdf文件!pdf存储在文件服务器上!

我怎么使用HBuilder编辑JSP,ASP或.vm文件中的HTML代码部分

Eclipse没有jsp编辑器,

java:附件中文名称乱码。。。

JSP页面JS和VBS的先后执行顺序。如何让VBS代码在页面加载完成后执行。