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

2024-02-05

The JRHtml导出器类现在已弃用(JasperReports 6.x).

我将这个类的用法替换为Html导出器。但我找不到等效的函数来替换exporter.setParameter (JRHtmlExporterParameter.IMAGES_URI, imageURI);。我需要设置用于存储生成报告的图像的路径(html file).

我的旧代码:

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 http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/export/JRHtmlExporterParameter.html#IMAGES_URI参数确实已被弃用,并且HtmlExporterOutput.getImageHandler() http://jasperreports.sourceforge.net/api/net/sf/jasperreports/export/HtmlExporterOutput.html#getImageHandler()应该使用方法来代替它。

定义图片存储路径

我们可以使用的实现Html 资源处理程序 http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/export/HtmlResourceHandler.html接口,例如WebHtml资源处理程序 http://jasperreports.sourceforge.net/api/net/sf/jasperreports/web/util/WebHtmlResourceHandler.html.

使用示例:

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();

定义导出期间保存图像的位置

在...的帮助下文件 Html 资源处理程序 http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/export/FileHtmlResourceHandler.html处理程序我们可以设置生成图像的路径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]

Notes:

使用样本Html 资源处理程序可以被找寻到here http://jasperreports.sourceforge.net/sample.reference/webapp/index.html#webapp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JRHtmlExporter 现已弃用。如何定义图片保存路径? 的相关文章

  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类

随机推荐

  • 带有扩展 SimpleCursorAdapter 的 nullPointerException

    我正在学习自定义提供程序和加载程序 作为一个简单的例子 我正在尝试实现一个GridView显示外部SD卡中存储的图片 尽管我读了很多 文档 SO 上的线程 Google 小组 论坛 但我无法让我的代码正常工作 我知道这个示例可能存在几个问题
  • Bootstrap中纵向和横向的不同网格布局

    我正在使用 Sencha 制作 Android 应用程序 我正在使用此布局在手机和平 板电脑中进行响应式布局 div class row div class col xs 6 col sm 3 col xs 6 col sm 4 div d
  • 使用 ASP.NET、NHibernate / Fluent NHibernate 实现最轻松的多租户

    我正在尝试在我拥有的使用 NHibernate 的 ASP NET MVC 应用程序中实现多租户 尽管我可以控制多租户数据库 我正在尝试找出使用 NHibernate 过滤数据库查询的最佳方法 我想知道是否有一种轻松的方法可以附加条件 例如
  • 我需要 C# 的位操作指南/参考材料 [重复]

    这个问题在这里已经有答案了 可能的重复 最常见的 C 位运算 https stackoverflow com questions 93744 most common c bitwise operations 我正在寻找 C 的位操作参考材料
  • Python从嵌套字典中提取最大值

    我有一个以下形式的嵌套字典 2015 01 01 time 8 capacity 5 2015 01 02 time 8 capacity 7 2015 01 03 time 8 capacity 8 etc 该词典是使用 dictread
  • 如何在 ASP.NET MVC 中使用 JQuery 调用控制器操作

    我已经阅读了一段时间 发现您可以使用以下方法调用控制器操作 ajax MyController MyAction function data alert data 这是否意味着我应该添加 MicrosoftMvcAjax js 或 Micr
  • 为什么对文字使用异或而不是反转(按位非)

    我遇到过这个CRC32代码 http www opensource apple com source xnu xnu 1456 1 26 bsd libkern crc32 c很好奇为什么作者会选择使用 crc crc 0U 代替 crc
  • Excel VBA / SQL 联盟

    我正在尝试将 2 个不同工作表中的 2 个单独的列连接起来 以创建一个更长的列 然后我可以从中使用 Vlookup 表1 A B C D E F G 表2 A B C D E F G 我想将sheet1中的B列和sheet2中的C列连接 联
  • SQL 单元测试存储过程

    我是 SQL 数据库的新手 但一直面临着测试我的数据库的问题 出于安全原因 任何查询或更新都是通过存储过程完成的 一位同行建议我使用存储过程来测试其他存储过程 对于对我的存储过程进行单元测试以确保它们正在执行它们应该执行的操作 这是一个好还
  • getAttribute() 和 getParameter() 之间的区别

    有什么区别getAttribute and getParameter 内的方法HttpServletRequest class getParameter 返回http请求参数 这些从客户端传递到服务器 例如http example com
  • 应用商店中的应用大小比上传的应用大小大 7 倍

    当我将 iOS 应用程序上传到应用程序商店时 ipa 大小为32 MB 现在我的应用程序上线了 现在我在应用程序商店上检查了我的应用程序大小 它显示237 MB在 iPhone 6 上 它显示252 MB当我在电脑上的浏览器中打开应用程序链
  • 如何在 SVN 中进行独占结帐?

    我正在寻找一种从 SVN 进行独家结帐的方法 有没有办法在检出文件时自动锁定文件 如果一个用户进行独占签出 然后另一个用户对同一文件进行签出 我如何向第二个用户生成某种通知或即时消息 表明该文件已锁定 您可以添加属性或自动属性svn nee
  • dplyr 计数变量的一个特定值的数量

    假设我有一个这样的数据集 id lt c 1 1 2 2 3 3 code lt c a b a a b b dat lt data frame id code I e id code 1 1 a 2 1 b 3 2 a 4 2 a 5 3
  • 在 Python 中验证 (X)HTML

    验证文档是否遵循某个 HTML 版本 最好是我可以指定 的最佳方法是什么 我希望能够知道失败发生在哪里 就像在基于 Web 的验证器中一样 但在本机 Python 应用程序中除外 PyTidyLib http countergram git
  • 将x和y轴添加到所有facet_wrap

    通常希望尽量减少绘图中的墨水 我有一个多面情节 facet wrap 并希望去除尽可能多的墨水但保持可读性 我已经按照我的意愿进行了设置 除了 x 轴和 y 轴不存在于面 子图 中 除非位于最左侧或底部 去除了这么多墨水后 我相信眼睛需要这
  • 重载解析算法中如何确定歧义?

    我试图理解重载解析方法 为什么这是模棱两可的 void func double int int double void func int double double double void main func 1 2 3 4 但这不是吗 v
  • XCode 警告:“/* 在块注释内”

    我真的很喜欢通过这样注释来临时启用和禁用代码部分 some code 注意 代替 在最后 然而 XCode 不断向我发出警告 within block comment 有没有办法 自定义禁用 特定警告 为什么 我会告诉你为什么 因为我可以轻
  • 如何将 std::max_element 用于结构

    我想用std max element对于结构体VAR T基于id元素 但我无法将起始点和停止点与该函数的输入链接起来 typedef struct VAR int id char b 16 VAR int a 0 strcpy b VAR
  • 如何从警报框中获取文本?

    我需要从警报框中获取文本 我没有足够的声誉来上传图像 所以我上传代码而不是图像 有没有办法使用 Greasemonkey 在 Chrome 上 从弹出窗口 获取文本 查询不清楚 但是如果我理解正确的话 页面上有一个 JavaScript 会
  • JRHtmlExporter 现已弃用。如何定义图片保存路径?

    The JRHtml导出器类现在已弃用 JasperReports 6 x 我将这个类的用法替换为Html导出器 但我找不到等效的函数来替换exporter setParameter JRHtmlExporterParameter IMAG