现在公司在用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第一帖,呵呵,期待大家的回音.

解决方案 »

  1.   

    你知道你这样写的动作是怎样吗?response.setContentType("application/pdf");将你返回的数据实际指定成了pdf内容,而并不是"写入html代码"而你实际需要的,仅是一个页面,里面嵌入PDF那样就很简单,编写一个html,做一个iframe,把你的这个jsp页面嵌入就是了
      

  2.   

    非常感谢,试试看.意思就是要写两个jsp页面了...
    csdn不错.找找看怎么给分......