我正在创建api,以pdf格式下载我的报告。 为此我使用java(spark框架)和jasper报告工具 一切都很好。
问题是,当我从邮递员那里点击我的api时,PDF的默认名称是“response.pdf.pdf”,我希望它是“report.pdf”
这是我的方法。
private Route getReport = (req,res)->{
try{
res.raw().setHeader("Content-Disposition", "attachment; filename= \"report.pdf\"");
res.raw().setContentType("application/pdf");
JRDataSource dataSource = new JREmptyDataSource();
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("cin", "556293-9982");
dataMap.put("financialYear","2009-05-01 - 2010-04-30");
JasperPrint jasperPrint = JasperFillManager.fillReport("reports/front-page.jasper", dataMap,dataSource);
JasperExportManager.exportReportToPdfStream(jasperPrint,res.raw().getOutputStream());
}catch(Exception ex){
res.type(ApplicationConstants.JSON_APPLICATION_CONTENT_TYPE);
throw new BusinessExceptions(ex, ApiErrorEnumerations.ERR_DOWNLOADING_REPORT);
}finally{
res.raw().flushBuffer();
res.raw().getOutputStream().close();
}
return res.raw();
};
请建议我出错的地方。
答案 0 :(得分:0)
如果您使用的是JasperReports API,则应在JasperPrint.setName(java.lang.String name)方法的帮助下设置报告名称。
答案 1 :(得分:0)
我认为邮递员在重命名pdf文件时会出现问题。
我尝试了一个示例应用,并尝试从浏览器下载我的报告,它的名称也正常。
感谢你帮助亚历克斯和1987年真的很感激。