使用Ireport和JSP生成PDF

时间:2015-05-07 14:10:21

标签: java jsp jasper-reports export-to-pdf

我想使用带有JSP的JasperReports生成PDF报告

这是我的代码

<% 
Class.forName("oracle.jdbc.OracleDriver");
Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:personnel","user","password");

try {
   File reportFile = new File(application.getRealPath("//reports//rapport_absences.jasper"));
    Map h = new HashMap();

    byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),h,cn);

    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition",  "inline; filename=report.pdf ");
    response.setContentLength(bytes.length);
    ServletOutputStream outStream = response.getOutputStream();
    outStream.write(bytes,0,bytes.length);
    outStream.flush();
    outStream.close();

}catch (Exception ex){
    ex.printStackTrace();
}
%>

但它给了我一个空白的PDF,虽然当我从Ireport运行报告时它运行良好并获得数据但是从jsp获得了一个空白的PDF

1 个答案:

答案 0 :(得分:0)

一如既往,我发现了自己的灵魂,因为现在我可以帮忙了,如果有人在将来需要的话,我就把它放在这里

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="application/pdf" %>
<%@ page trimDirectiveWhitespaces="true"%>



<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="java.util.*" %>


<%
Class.forName("oracle.jdbc.OracleDriver");
Connection cn =    DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:personnel","charif","charif123");

response.setHeader("Content-Disposition",  "inline; filename=report.pdf ");
JasperPrint print = JasperFillManager.fillReport("D:\\ISTA\\Projet_Stage\\GestionPersonnel\\web\\reports\\rapport_absences.jasper",
new HashMap(),
cn);


JasperExportManager.exportReportToPdfStream(print,    
response.getOutputStream());

%>