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

Unable to set Default file name using Jasper report

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

请指出我哪里出错了。

  • 对于碧玉报告API

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

  • 对于iReport(编辑报表模板) 借助名称属性在报告模板中设置报告名称: jasperReport .. 名称="Sample report name to print"

我认为 postman 重命名 pdf 文件时出现问题。

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

感谢帮助 Alex k 和 m 1987 非常感谢。