jasperReport生成html圖片顯示問題

糾結兩天jasperReport生成html柱狀圖顯示圖片一直有問題,終於讓我找到了,方法如下:

在網上查找後發現需要設置下面四個參數:
1.JRHtmlExporterParameter.IMAGES_DIR_NAME
2.JRHtmlExporterParameter.IMAGES_URI
3.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN
4.JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR

一開始是想結合Spring MVC的配置設置的,但是使用exporterParameters無法將上述參數設置到JasperReportHtmlView中,只好作罷。動手自己寫了一個。步驟如下:

1.獲得報表模板存放路徑。
String jasperFilePath = new StringBuilder(“WEB-INF/reports/”).append(jasperFileName).append(“.jasper”).toString();

2.獲得報表模板文件
File reportFile = getWebApplicationContext(request).getResource(jasperFilePath).getFile();

3.根據報表模板文件生成報表打印對象
JasperPrint print = JasperFillManager.fillReport(reportFile.getAbsolutePath(), model, dataSource.getConnection());

4.創建Html導出對象
JRHtmlExporter exporter = new JRHtmlExporter();

5.設置圖片文件存放路徑,此路徑爲服務器上的絕對路徑
String imageDIR = webContext.getResource(“reportFiles”).getFile().getAbsolutePath();
exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, imageDIR);

6.設置圖片請求URI
String imageURI = request.getContextPath() + “/reportFiles/”;
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, imageURI);

7.設置導出圖片到圖片存放路徑
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);

8.設置導出對象
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);

9.設置導出方法
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, response.getWriter());

10.設置HTTP Head
response.setContentType(“text/html”);

11.執行導出
exporter.exportReport();

至此,自定義的導出方法完成了。 需要特別注意的是JRHtmlExporterParameter.IMAGES_DIR_NAME和JRHtmlExporterParameter.IMAGES_URI雖然執行的是相同的目錄,但是表達方式不一樣,IMAGES_DIR_NAME是文件系統的絕對路徑,而IMAGES_URI是http請求時的uri。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章