导出为 PDF 时如何在文本字段中包含图像和表格?

Posted

技术标签:

【中文标题】导出为 PDF 时如何在文本字段中包含图像和表格?【英文标题】:How to include Images and Tables in Textfields when exporting to PDF? 【发布时间】:2015-04-02 22:11:06 【问题描述】:

在使用 JasperReports 导出 PDF 时,是否可以使用 markup=html 在 Textfields 中包含图像和表格?

当我在报告中添加一个带有 markup=html 的文本字段时,会提供开箱即用的基本 HTML 支持,例如:

<textField>
    <reportElement .../>
    <textElement markup="html"/>
    <textFieldExpression><![CDATA["<html>some <b>bold</b> text</html>"]]></textFieldExpression>
</textField>

但是,似乎不支持更复杂的 HTML。如果我做对了,就必须编写一个自定义 MarkupProcessor 来将传入的 HTML 转换为 jrxml 并将其插入 JasperReports 引擎以处理更复杂的示例。

因为我们使用CKEditor 来处理输入,所以使用的标签列表应该是可管理的。其次,我们已经使用Jsoup 来解析和清理 HTML,这可能对实现 MarkupProcessor 很有用。

有没有可以借鉴的例子?正如我所说,我主要是在寻找图像(img)和表格(tabletrtd)的支持。

如果没有,是否可以使用 JasperReports 实现此目的?

【问题讨论】:

我也有同样的问题,你找到解决办法了吗? @AlbertHendriks 这似乎不可能,至少我还没有找到一个简单的解决方案。我最终做的是使用docx4java.org 生成包含 HTML 的 .docx 文件。事实证明,我们的用户很高兴获得 Word 文件而不是 PDF,所以我对此很满意。然而,将生成的 docx 转换为 pdf 是可能的,但我还没有尝试过。顺便说一句,docx4j 似乎在后台使用code.google.com/p/flying-saucer 来导入 HTML。 您不能在文本字段中插入图像。这是我的电子邮件 ID。请告诉我你的确切情况。 mabtestflight@gmail.com. 【参考方案1】:

这似乎确实是不可能的。我们现在做的是在 jrxml 中的预定义位置插入图像,并配置 ckeditor 的有限功能。另一种选择是从 ckeditor 中提取图像 url 并将它们插入到 jrxml 中的预定义位置,但我们现在不使用它。

【讨论】:

以上是关于导出为 PDF 时如何在文本字段中包含图像和表格?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Tkinter 中的一个按钮中包含图像+文本

如何评估访问查询中另一个字段中包含的字段名称?

如何使用 python 从 PDF 表单中读取数据

使用剑道导出pdf在页面末尾中断的图像/内容块

R:如何将绘图/图形导出为 png 或 pdf 文件

将Google表格导出为PDF时,我如何访问参数