2017-01-03 72 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()也沒有工作。 –