java - 动态列单元格宽度

标签 java html jasper-reports

我有一些以 HTML 格式显示的 Jasper 报告。我希望 HTML 表格中列的宽度自动调整大小以适应最宽单元格(在该列中)的内容,以便显示所有数据。

目前这不会发生,因为 Jasper 生成的 HTML 为

和一些
元素指定了固定宽度,例如

<td style="width: 20px; height: 17px;">
  <span style="font-family: Arial; font-size: 11px;">foo-bar-baz@examp</span>
</td>

我不能简单地删除所有这些宽度属性(使用 JavaScript),因为(如上面的 HTML 所示)在使用这些宽度时隐藏的任​​何数据甚至都不会返回到客户端

干杯, 唐

最佳答案

虽然不完美,但您可以将字段标记为溢出拉伸(stretch)。这至少会给你所有的数据。在您的 jrxml 文件中,它类似于:

<textField isStretchWithOverflow="true" hyperlinkType="None">
    <reportElement style="Report Sub-Title" x="0" y="84" width="802" height="20"/>
    <textElement/>
    <textFieldExpression class="java.lang.String">
        <![CDATA["For the period ...]]>
    </textFieldExpression>
</textField>

恐怕我不知道 Jasper 报告的任何允许动态调整列宽大小的功能 - 这可能是对 HTML 有意义但对其他输出格式(如 PDF)意义不大的事情之一.

关于java - 动态列单元格宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/300383/