clojure - 有没有一种从 Clojure 中使用 JasperReports 的简单方法?

标签 clojure jasper-reports dynamic-jasper

我看到有一个 Scala wrapper for JasperReports , 我找到了 Clojure library for Scala interoperability ,以及 a snippet初学者的示例代码 from this discussion但我找不到 Jasper 或 DynamicJasper 的任何库或工作示例代码。我以为我以前找到了图书馆或文章。有什么提示吗?

问题是 JasperReports API 非常困惑(以变异为中心),所以我不想从头开始编写包装器代码。

最佳答案

这不是一个详尽的教程,而是一些关于我如何将 JasperReports 与 JRxml 文件和 Clojure 结合使用的提示。我不知道 DynamicJasper。

这是您需要导入的一些内容。

(ns app.reports
  (:require [clojure.java.io :as io]
            [clojure.string :as s])
  (:import [net.sf.jasperreports.engine
            JasperCompileManager
            JasperFillManager
            JasperPrint
            JasperExportManager
            JREmptyDataSource
            JRExporter
            JRException]))

编译你的 jrxml 文件:

(def my-report
  (JasperCompileManager/compileReport
    (io/input-stream
      (io/file "my-report.jrxml"))))

将 Java HashMap 与您将传递给报告的数据/列一起使用以填充它。

(def report-data
  (java.util.HashMap. {"attrname_1" "Attr 1 String"
                       "attrname_2" "More data..."}))

用来源的数据填充您的报告:

(def filled-report
  (JasperFillManager/fillReport my-report report-data (JREmptyDataSource.)

导出您的报告。以下是如何将其转换为 PDF。

(JasperExportManager/exportReportToPdfFile filled-report "result.pdf")

我希望这可以帮助您入门。

关于clojure - 有没有一种从 Clojure 中使用 JasperReports 的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263653/

相关文章:

spring-boot - Spring boot插件docker OCI镜像和JasperReports

java - 如果缺少 PDF 字体,为什么 jasper 报告不会抛出 JRFontNotFoundException?

java - Jasperreport 中的位

java - Tomcat下加载一个jrxml文件

java - 在 DynamicJasper 图表中使用 CustomExpression

clojure - 如何更改 Leiningen 和 LightTable 中的 Clojure 版本?

clojure - 实现数据模型以防止常见错误

amazon-web-services - aws-ec2 - 您无权执行此操作

clojure - 获取数字的每个数字的惯用方法

grails - DynamicJasper(在Grails上)有目的地使列或字段为空白(空)