Jasper Report:使用 HTML 标记将文本对齐为文本字段的中心

Jasper Report : Aligning text as center in text field using HTML markup

我创建了一个 Jasper Report 来显示从数据库中检索到的文本。文本采用 HTML 格式。在以 PDF 格式显示时,我需要对文本进行样式设置和对齐。这是来自 DB

的示例 HTML 文本
<html>
<p><b>This is Bold text</b></p>
<p>  This is a paragraph whith indent</p>
<p>This is a paragra with no indent</p>
<p><center>This text should be centered</center></p>
<p><font size="4">This text should be of font size 4</font></p>
</html>

粗体和段落标签效果很好。但该字体不适用于 4 号尺寸。有一个中心标记用于必须居中对齐的线。查看 Jasper 文档中心标签未列在受支持的标签中。 http://jasperreports.sourceforge.net/sample.reference/styledtext/index.html

我尝试使用样式化和 rtf 标记居中对齐,但没有用。 有没有其他方法可以实现文本字段中某些行的文本对齐?

如果我以错误的方式使用字体标签,请告诉我。

字号

我看不出你的字体大小命令有什么问题,请确保你有 markup="html" 并且 " 已正确转义你可以尝试将其替换为 '

这个textFieldExpression

<textField>
    <reportElement x="132" y="0" width="126" height="30" uuid="0328a547-49c7-402c-bcb0-ae2a8fba4fb3"/>
    <textElement markup="html"/>
    <textFieldExpression><![CDATA["<p><font size=\"1\">Small</font>&nbsp;<font size=\"3\">Big</font></p>"]]></textFieldExpression>
</textField>

将呈现

文本对齐方式

与不同的 markup(样式化、rtf、html)您只能格式化文本的外观(颜色、粗体、下划线 ecc)。

此功能用于生成样式文本

Quoting Teodord(jasper报告员)

The alignment is not among supported styling because it is not about how text characters look, but about how you lay them out. We cannot change the alignment of text within the same text field element.

你有什么选择?

  1. 用 space 左填充文本,您可以创建自己的静态方法,用 es 左填充文本。 &nbsp; 取决于文本长度。

  2. 尝试 <hc:html> 组件,这将呈现您的图像 html。 (不再是文字,而是图片...)

  3. Post 处理 JasperReport 或 JasperPrint 移动元素...(注意它需要是一个单独的元素)

不多..所以为什么不没有....