JRHtmlExporter 类现已弃用(JasperReports 6.x)。
我用HtmlExporter替换了该类的用法。但我找不到等效的函数来替换 exporter.setParameter (JRHtmlExporterParameter.IMAGES_URI, imageURI);
。我需要设置生成报告的图像存储路径(html 文件)。
我的旧代码:
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, filedReport);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outputFileName);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "");
exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.TRUE);
String imageURI = "q?srvAction=ReportImage&img="+returnFileName.substring(3).replace("/", "%2F")+"_files"+"%2F";
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,imageURI);
JasperReports 6.x 中用于定义图像路径的实际代码是什么?
最佳答案
正如我们从 javadoc 中看到的 JRHtmlExporterParameter.IMAGES_URI参数确实已被弃用,并且 HtmlExporterOutput.getImageHandler()应该使用方法来代替它。
定义图片存储路径
我们可以使用 HtmlResourceHandler 的实现接口(interface),例如 WebHtmlResourceHandler 。
使用示例:
JRExporter exporter = new HtmlExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
SimpleHtmlExporterOutput output = new SimpleHtmlExporterOutput(out);
output.setImageHandler(new WebHtmlResourceHandler("/reports/image?image={0}"));
exporter.setExporterOutput(output);
exporter.exportReport();
定义导出时保存图像的位置
在的帮助下FileHtmlResourceHandler 处理程序我们可以设置生成的 html
图像的路径使用示例:
JRExporter exporter = new HtmlExporter();
// output file for generated html report
File file = new File(String.format("./out/%1$s_%2$s.html", report.getTemplateName(), new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())));
ExporterConfiguration configuration = new SimpleHtmlExporterConfiguration();
exporter.setConfiguration(configuration);
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
SimpleHtmlExporterOutput exporterOutput = new SimpleHtmlExporterOutput(file);
// the folder for storing images. It will be subfolder with name starting like generated html and ended with postfix "_images"
File resourcesDir = new File(file.getParent(), file.getName() + "_images");
// argument ({0}) will be replaced with the real image name
String pathPattern = resourcesDir.getName() + "/{0}";
exporterOutput.setImageHandler(new FileHtmlResourceHandler(resourcesDir, pathPattern));
exporter.setExporterOutput(exporterOutput);
exporter.exportReport();
生成的文件和文件夹将如下所示:
.. [Folder]
image-test_20170504232649.html [File]
image-test_20170504232649.html_images [Folder]
img_0_0_0.png [File]
注释:
使用HtmlResourceHandler的示例可以在 here 找到
关于java - JRHtmlExporter 现已弃用。如何定义图片保存路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43763810/