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

时间:2015-12-07 21:20:36

标签: html jasper-reports text-alignment

我创建了一个Jasper报告来显示从DB检索的文本。文本采用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标记进行中心对齐,但它不起作用。 有没有其他方法可以实现文本对齐作为文本字段中某些行的中心?

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

1 个答案:

答案 0 :(得分:2)

字体大小

我看不出您的字体大小命令没有任何问题,请确保您有markup="html"并且"已正确转义,您可以尝试将其替换为' < / p>

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>

将呈现

small BIG

文字对齐

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

此功能用于制作样式文字

Quoting Teodord(碧玉报告人员)

  

对齐不是支持的样式,因为它不是   文字字符的外观,但是关于如何展示它们。我们不可以   更改同一文本字段元素中文本的对齐方式。

你有什么选择?

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

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

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

  4. 并不多......所以为什么不这样做....