当前位置: 代码迷 >> Java Web开发 >> jasperreport输出pdf文件.页面显示有关问题
  详细解决方案

jasperreport输出pdf文件.页面显示有关问题

热度:56   发布时间:2016-04-17 14:10:09.0
jasperreport输出pdf文件.页面显示问题
现在公司在用jasperreport做报表,点击打印按钮以后,打开一个新的jsp页面,这个新的页面里面显示的是pdf文件的内容.
jsp文件的代码如下:    
文件名:       UserPrintPreview.jsp
代码:
开始
<%@   page   import= "net.sf.jasperreports.engine.* "   %> <%
%> <%@   page   import= "java.util.* "   %> <%
%> <%@   page   import= "java.io.* "   %> <%
%> <%@   page   import= "java.sql.* "   %>

<%
          File   reportFile   =   new   File(application.getRealPath( "/reports/user_test.jasper "));

          String   url= "jdbc:postgresql://192.168.0.155:5432/synthedb ";
          Class.forName( "org.postgresql.Driver ").newInstance();
          Map   parameters   =   new   HashMap();

          parameters.put( "CLIENT_NAME ",   new   String( "お客様 "));
          System.out.println( "---------conn------------- ");

          Connection   conn   =   DriverManager.getConnection(url, "postgres ", "postgres ");
          System.out.println( "---------Jasper   begin------------- ");

          System.out.println(reportFile.getPath());
          byte[]   bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn);
          System.out.println( "---------Jasper   end------------- ");
          response.setContentType( "application/pdf ");
          response.setContentLength(bytes.length);
          ServletOutputStream   ouputStream   =   response.getOutputStream();
          ouputStream.write(bytes,   0,   bytes.length);
          ouputStream.flush();
          ouputStream.close();
%>

完毕

现在页面可以正常显示,但是这个jsp打开后,全部被pdf文件填充满了.客户要求最好在页面的上方可以显示一行字,表明这个页面的功能.大概是如下的样子:

UserPrintPreview.jsp的要求样式如下:

<浏览器菜单>
用户信息打印预览:(←要求加入页面中的那一行字)
------------------------------------
pdf文件的具体内容
------------------------------------

现在的问题是我不知道怎么在页面当中加入那个说明信息,在jsp页面当中写入html代码以后,打开jsp页面的时候就不会在页面中显示pdf文件,而是跳出Adobe   Reader直接调用Adobe   Reader来打开pdf文件.
麻烦各位高手指点一下,困扰我一天了.....
这个功能能否实现?如果能实现的话怎么写代码呢?
有知道的哥们儿给我发个相关的网址也行.谢谢大家了.
本人的csdn第一帖,呵呵,期待大家的回音.

------解决方案--------------------
你知道你这样写的动作是怎样吗?response.setContentType( "application/pdf ");将你返回的数据实际指定成了pdf内容,而并不是 "写入html代码 "

而你实际需要的,仅是一个页面,里面嵌入PDF

那样就很简单,编写一个html,做一个iframe,把你的这个jsp页面嵌入就是了
  相关解决方案