Я могу создать отчет в формате PDF с использованием JasperReports и Java.
Сгенерированный отчет недоступен для загрузки на стороне клиента.
Я генерирую PDF-файл, используя код ниже:
public void getTaskreportPDF(Session openSession,HttpServletRequest request,HttpServletResponse response) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/contact","root","root");
Map params = getParameters(openSession);
Date date = new Date();
String reportfileName = "report"+date.getDate()+"-"+date.getMonth()+"-"+date.getYear()+"-"+date.getTime()+".pdf";
JasperDesign jasperDesign = JRXmlLoader.load(this.getClass().getResourceAsStream("/com/gantt/report/ganttreport.jrxml"));
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperprint = JasperFillManager.fillReport(jasperReport, params,con);
JRAbstractExporter exporterPDF = new JRPdfExporter();
exporterPDF.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint);
exporterPDF.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
response.setHeader("Content-Disposition", "inline;filename="+ reportfileName);
response.setContentType("application/pdf");
exporterPDF.exportReport();
} catch(Exception exception) {
System.out.println("Error occured " +exception.getMessage());
}
}
На моей вкладке firebug net в качестве ответа я получил файл отчета в формате pdf размером 4 КБ. Но проблема в том, что окно загрузки не появляется, поэтому я не могу сохранить его или просмотреть этот отчет.
Мой клоп-шоу показывает:
Content-Disposition inline; имя файла = report21-0-112-1327135412907.pdf
Тип контента приложения / pdf
Какая ошибка, из-за которой мое окно загрузки не появляется?