В приведенном ниже коде я могу экспортировать файл отчета jasper (.jasper) в формате HTML или PDF в локальную файловую систему, но не могу показать отчет в формате PDF в новом окне /tab.
Как мне это сделать?
Обработка метода класса Spring Controller для создания отчета в формате jasper
@Controller
@RequestMapping("/MySearchCtrl")
MySearchCtrl {
@Autowired
ServletConext servletContext;
@RequestMapping(value="/loadJasperReport", method=RequestMethod.GET)
public void loadJaspeeReport(HttpServletResponse response, HttpServletRequest request){
String reportSrcFile = "/WEB-INF/MyReport.jasper";
try {
response.setContentType("application/pdf");
response.addHeader("Content-Disposition","attachment;inline=My_"Report.pdf");
List<MyReportBean> beanList = new ArrayList<MyReportBean>();
// add the beans to the beanList here
InputStream is = this.getClass().getClassLoader().getResourceAsStream(servletContext.getRealPath(reportSrcFile));
JasperReport jasperReport = (JasperReport)JRLoader.loadObjct(is);
JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(beanList);
Map<String,Object> parameters = new HashMap<String,Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,beanCollectionDataSource);
JasperExportManager.exportReportToPdfStream(jasperPrint,response.getOutputStream()); // DOES NOT WORK. NO ERROR Either
JasperExportManager.exportReportToHtmlFile(jasperPrint,"C:\\Users\dipak\Deskop\report.html"); // DOES WORK
JasperExportManager.exportReportToPdfFile(jasperPrint,"C:\\Users\dipak\Deskop\report1.pdf"); //DOES WORK
} catch(Exception e){
e.printStackTrace();
}
}
}
Мой код Javascriptвызов метода Spring выше
function generateJasperReport(){
$.ajax({
type:"GET",
async:false,
url:"/MySearch/SearchResulkts/MySearchCtrl/loadJasperReport",
data:{},
success:function(data){
// TODO data is the pdf stream exported by Jasperreports and i need to display it in a new tab
console.log(data);
},
})}