如何使用RTF内容是jasper report

How to use RTF content is jasper report

我正在使用 Jasper Report 5.6.0 + JSF 2.2 + Primefaces 5.2

我的问题是我从 pe:ckEditor here 传递 RTF 的 jrxml 的详细信息带(内容)。这个编辑器有很多丰富的组件,例如tables、收音机、字体等

在生成的文档中,许多样式自动转义。像 table 或字体。虽然该文本字段标记是 html.

更多:如果我生成 html 而不是 pdf, 字体将被更改。我的粗略猜测是,如果任何字体不在 JasperReport -> iText 库中,它将自动转义

要在 textElement 上使用 markup="rtf" 呈现 RTF 文本,但是您 不能 渲染表格、文本对齐、框的 ecc。

This feature is only for producing styled text., how the text looks (bold, size, color ecc.)

你有什么选择?

  1. 转换为 html 并使用 HTML Renderer Component,请注意这也不完美,因为它会渲染您的 html 的图像(溢出和大小问题).

  2. 创建您自己的 RTF 组件,我还没有看到 RTF 渲染器组件,我认为 JasperSoft Community[=18= 中没有针对此功能请求的任何开放跟踪器]

  3. 解析 java 中的 RTF 并使用动态 jasper 生成您的报告(或与 RTF 相关的子报告)

生成 pdf 时,如果未提供字体扩展名,iText 将使用(引用 @Bruno Lowagie)“尽最大努力”来呈现您的字体,这通常是不够。考虑为您的项目添加字体扩展

注意:如果您使用的是 HTML 渲染器组件,则不需要此组件,因为它正在渲染图像。