无法使用Jasper报告设置默认文件名

时间:2017-01-03 13:29:11

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

我正在创建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();
    };

请建议我出错的地方。

2 个答案:

答案 0 :(得分:0)

  • 适用于jasper report API

如果您使用的是JasperReports API,则应在JasperPrint.setName(java.lang.String name)方法的帮助下设置报告名称。

  • 对于iReport(编辑报告模板) 借助name属性在报告模板中设置报告名称: jasperReport .. name =“要打印的样本报告名称”

答案 1 :(得分:0)

我认为邮递员在重命名pdf文件时会出现问题。

我尝试了一个示例应用,并尝试从浏览器下载我的报告,它的名称也正常。

感谢你帮助亚历克斯和1987年真的很感激。