我创建了一个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标记进行中心对齐,但它不起作用。 有没有其他方法可以实现文本对齐作为文本字段中某些行的中心?
如果我以错误的方式使用字体标记,也请告诉我。
答案 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> <font size=\"3\">Big</font></p>"]]></textFieldExpression>
</textField>
将呈现
文字对齐
使用不同的markup
(样式,rtf,html),您只能格式化文本的外观(颜色,粗体,下划线ecc)。
此功能用于制作样式文字。
Quoting Teodord(碧玉报告人员)
对齐不是支持的样式,因为它不是 文字字符的外观,但是关于如何展示它们。我们不可以 更改同一文本字段元素中文本的对齐方式。
你有什么选择?
用空格填充左侧填充文本,您可以创建自己的静态方法,用es填充文本。
取决于文字长度。
尝试<hc:html>
组件,这将呈现您的html图像。 (不再是文字而是图像...)
后处理JasperReport或JasperPrint以移动元素...(注意它需要是一个单独的元素)
并不多......所以为什么不这样做....