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页面嵌入就是了