首页 文章

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

提问于
浏览
2

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

  • 2

    Font size

    我看不出什么不对您的字体大小命令,请确保您有 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>
    

    将呈现

    small BIG

    Text alignment

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

    This feature is for producing styled text .

    Quoting Teodord(碧玉报告人员)

    对齐不支持样式,因为它不是关于文本字符的外观,而是关于如何布局它们 . 我们无法在同一文本字段元素中更改文本的对齐方式 .

    你有什么选择?

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

    • 试试 <hc:html> 组件,这将渲染你的html图像 . (不再是文字而是图片...)

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

    没多大..所以为什么不做不....

相关问题