我在报告中遇到问题,在该报告中,我有一个$F{field}
,您可以在其中收到一个带有whitespaces的值。示例:
" 20142101"Textfield必须水平与"正确"一致。
我的PDF的结果是" 20142101"(未出现Whitespaces)
问题(我认为)是 jasperreports 自动在 textfield 中进行修剪,但我不想要这个!
我尝试使用选项:
- 溢出
- 细节溢出时打印
- net.sf.jasperreports.text.truncate.at.char = true
- net.sf.jasperreports.print.keep.full.text = true
- 标记:无或html(带有标签)
但是它不起作用...
有什么建议?
您可以使用带有右/左填充的无边界盒作为Textfields。
<textField>
<reportElement ../>
<box border="None" rightPadding="10"/>
<textElement textAlignment="Right"/>
<textFieldExpression..
信息来源
注意,当我尝试出来时,我的jasper Studio编辑器将框元素变成以下内容,但具有相同的效果。
<textField>
<reportElement mode="Opaque" x="233" y="0" width="303" height="18" forecolor="#FFFFFF" backcolor="#817F82" uuid="501dc3cf-f3cf-45d4-aa25-de24c4100354"/>
<box rightPadding="5">
<pen lineWidth="0.0" lineStyle="Solid"/>
</box>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font fontName="Arial" size="10" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA["My data where I want blank spaces in the end of this sentence. "]]></textFieldExpression>
</textField>
谢谢您的帮助!
我找到了一个有效的解决方案,但不是很合适...
(我的$ f {field}始终是60个字符的字符串)
($F{field} != null && $F{field}.length() == 60 && $F{field}.substring(59).equals(" ")) ? "<pre>"+$F{field}.substring(0,59)+" </pre>" : $F{field}
(使用标记html)
我也会用 t进行测试。
thx