jasper-reports - 如何将 HTML 内容(无样式)导入文本字段?
问题描述
我在 HTML 文件中有一些信息。还有更多的 HTML 文件,它们都包含依赖于输入参数的字符串(粗体)。
举个例子:
file_**01**.html --> contains: "Bob Bakers"
file_**02**.html --> contains: "Alice Armstrong"
HTML 文件存储在存储库中,我想将这些文件之一的内容导入/加载到文本字段中。对于一些图像,我做了类似的事情:
"repo:/home/res/images/" + $F{html_param} + ".html"
并且根据参数,它会加载正确的图像。我需要对 HTML 文件中的字符串执行相同的操作。
如果无法使用文本字段执行此操作,是否还有其他选项可以导入/加载内容并在报告中显示它们?
解决方案
你可以做这样的事情
<textField>
<reportElement .../>
<textElement markup="html"/>
<textFieldExpression>new String(net.sf.jasperreports.repo.RepositoryUtil.getInstance($P{JASPER_REPORTS_CONTEXT}).getBytesFromLocation("repo:/home/res/images/" + $F{html_param} + ".html"), java.nio.charset.StandardCharsets.UTF_8)</textFieldExpression>
</textField>
只要 html 文件结构简单,这将起作用,否则markup="html"
可能无法解释文档。