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

Jasper报告:使用HTML标记将文本作为文本字段的中心对齐,html,jasper-reports,text-alignment,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>

我创建了一个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

粗体和段落标记可以很好地工作。但是字体不适合4号。直线有一个中心标记,它必须与中心对齐。查看Jasper documentation center标记未在支持的标记中列出。

我尝试使用样式化和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>

将呈现

文本对齐

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

此功能用于生成样式文本

特奥多德(贾斯珀报告员)

路线不在受支持的样式中,因为它不是关于 文本字符的外观如何,但取决于您如何布置它们。我们无法 更改同一文本字段元素中文本的对齐方式

你有什么选择

  • 使用空格左键填充文本,您可以创建自己的静态方法,将文本左键填充为es。
    取决于文本长度

  • 尝试
    组件,这将呈现html的图像。(不再是文本,而是图像…)

  • 对JasperReport或JasperPrint进行后期处理以移动元素…(注意,它需要是一个单独的元素)


  • 没有太多..那么为什么不使用..

    谢谢。字体问题已经解决。对于对齐方式,文本缩进正在使用。我尝试了html组件以显示表格和中心对齐方式。这对固定数据很好,但对动态数据不起作用。如果内容动态增加,html会缩小其大小。是否有其他方法她显示html表格的方式?html组件的问题是它呈现为图像…这就是为什么你看到它在缩小(你也可以剪裁它,它不会缩小,但我想这不会有帮助)。jasper report中没有直接显示html表的简单方法,解决方法可能是1)用java解析它,并将其作为交叉表传递,2)用java解析它并使用动态jasper。我尝试了table元素,它满足了我的要求。对于缩进,当我尝试在示例jrxml文件中使用时,效果非常好。当我尝试通过Java代码结束相同的内容,它没有创建缩进。这是我尝试的html字符串。
    code
    “无缩进文本”

    “+”带缩进文本

    “缩进的问题是因为我在应用程序中使用了自定义字体文件。字体文件不正确。所以我从不同的位置下载了字体文件,解决了这个问题