gpt4 book ai didi

java - JRHtmlExporter 现在已弃用。如何定义图片保存路径?

转载 作者:行者123 更新时间:2023-11-30 07:54:44 29 4
gpt4 key购买 nike

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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com