2017-01-03 91 views
0

我正在创建api以PDF格式下载我的报告。 为此,我使用java(火花框架)和碧玉报告工具 一切工作正常。无法使用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

@AlexK我们必须编写关于“exportReportToPdfStream”的报告,并且链接的解决方案使用“exportReportToPdfFile”。 –

+0

重复:[如何更改与JasperReports pdf文件生成的名称?](http://stackoverflow.com/q/41218899/876298) –

+0

@亚历克斯仍然没有运气。 –

回答

0

我觉得这是一个与重命名PDF文件的邮递员问题。

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

感谢您的帮助Alex k和m 1987真的很感谢。

0
  • 对于碧玉报告API

如果您正在使用JasperReports的API,你应该设置报告名称与JasperPrint.setName(java.lang.String中的名字)方法的帮助。

  • 对于iReport的(编辑报告模板)与name属性的帮助报告模板 组报告名称: jasperreport的.. NAME = “样本报告名称打印”
+0

@m 1987 JasperPrint.setName()也没有工作。 –