首页 > 解决方案 > 如何设置 Jasperreports TextField 中显示的 html 段落的左边距

问题描述

我正在使用 Jaspersoft Studio 6.2.1 制作子报表。子报表只包含一个TextField定义如下:

<band height="105">
    <textField isStretchWithOverflow="true">
        <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="0" width="505" height="47" uuid="03b4eae9-6dd0-4fdb-b2c5-5d8a5ba3b71d"/>
        <textElement textAlignment="Justified" markup="html">
            <font fontName="Verdana" size="10"/>
            <paragraph lineSpacing="1_1_2" leftIndent="0" spacingAfter="250"/>
        </textElement>
        <textFieldExpression><![CDATA["Some text"]]></textFieldExpression>
    </textField>
</band>

它可以正常工作,使用我放置的任何内容制作 PDF 视图。虽然它可以渲染像 <b>、<ul> 或 <u> 这样的 html 标签,但它不会像我为它设置样式时那样渲染 html paragrahp (<p>) 标签。下面,有两张图片显示了我想要实现的目标和最终结果。

在此处输入图像描述

在此处输入图像描述

可以看出,两个段落都没有任何边距显示。我知道我可以为 textField 元素内的所有段落设置样式,但是有没有办法根据其样式属性实现任何段落都有自己的样式?

标签: htmljasper-reports

解决方案


您所遇到的情况与 JasperReports 在内部仅使用 ajavax.swing.JEditorPane来处理 HTML 文本有关,不幸的是,即使在较新的 Java 版本中也仅支持 HTML 3.2。

因此,在编写 HTML 标记时不应依赖内联样式。


推荐阅读