如何将 Jasper Report 输出直接存储在数据库表中,中间没有任何步骤

Posted

技术标签:

【中文标题】如何将 Jasper Report 输出直接存储在数据库表中,中间没有任何步骤【英文标题】:How to store Jasper Report output directly in a database table without any steps in between 【发布时间】:2016-09-30 14:03:31 【问题描述】:

这似乎是一个简单的问题,但是否可以将 JasperReport 的输出直接存储在数据库表中,而无需任何其他步骤? 据我所知,Jasper 会生成一个输出(例如 PDF),我可以下载和/或在浏览器中显示。要将其存储到数据库中,我需要一个额外的步骤来将 PDF 从文件系统传输到数据库表。 该请求的原因是,我必须生成并保留交易收据。

我的编程环境是:

Oracle APEX Oracle 数据库 11.0.2 Apache Tomcat

有什么想法吗?谢谢!

【问题讨论】:

感谢戴夫,您的回答。当然,我可以使用 APEX 将结果 PDF 存储在数据库中,这不是问题。我想直接从 Jasper 存储它,中间没有任何其他步骤。 JasperReports 是一个 Java 库。 Jaspersoft Studio 是一个 IDE,用于开发使用所述库填写的报告模板。 IDE 和 JasperReports 都没有将填充的报告流式传输到数据库的内置功能。需要定制软件。见here 和here。 【参考方案1】:

我找到了一个很好的解决方案。要使用 JasperReports 从 Oracle APEX 生成 PDF,有一个名为 JasperReportsIntegration 的集成框架 该框架包含多个将 Oracle APEX 与 Jasper 连接起来的函数。还有一个功能可以将报告作为 blob 获取。这个 blob 可以很容易地保存在数据库表中。

begin
  xlib_jasperreports.set_report_url('<url of the Application>');

  xlib_jasperreports.get_report(p_rep_name          => :p_rep_name,
                                p_rep_format        => :p_rep_format,
                                p_data_source       => :p_data_source,
                                p_rep_locale        => :p_rep_locale,
                                p_rep_encoding      => :p_rep_encoding,
                                p_additional_params => :p_additional_params,
                                p_out_blob          => :p_out_blob,
                                p_out_mime_type     => :p_out_mime_type);
end;

这对我来说很完美。

【讨论】:

以上是关于如何将 Jasper Report 输出直接存储在数据库表中,中间没有任何步骤的主要内容,如果未能解决你的问题,请参考以下文章

Jasper Report 组页脚在详细信息带后未立即打印

Java合并了两个Jasper Report

如何将报告导出为 PDF/A-1a、PDF/A-1b?

Jasper report用JSON文件调试预览(附解决JSON报错)

如何将两个jrxml jasper报告合并为一个单独的pdf输出文件

Jasper with Hibernate - 找不到实体类