【问题标题】:Printing Dynamic textfields with JasperReports使用 JasperReports 打印动态文本字段
【发布时间】:2011-04-11 07:27:58
【问题描述】:
我正在编写一个软件,其中一个进程将文本设置为JTextArea。 JTextArea 具有预先设置的宽度和高度。如果输入文本太长,则更改字体大小以使整个文本适合JTextArea 的边界。
然后我想打印这个JTextArea。印刷版也应该有像我的用户界面一样的确切属性。我为此使用JasperReports。
但问题是我找不到在生成的报告中动态更改字体大小的方法。有没有办法做到这一点?或者请指导我一些好的参考。
谢谢
【问题讨论】:
标签:
java
jasper-reports
font-size
【解决方案1】:
我发现的一种可能方法是创建几个具有不同字体大小的字段,并为每个字段创建不同的打印表达式。
您可以在字段中检查字符串的长度,并仅显示适合字符串长度的字段。
如果设置为您的字段的打印表达式,可能会执行以下操作。
($F{myField}.length() > 20 && $F{myField}.length() < 100)
如果字符串长度大于 20 但小于 100,则表达式为真。
如果您创建多个这样的字段,则应该适合处理不同的长度。
【解决方案2】:
您可以查看DynamicJasper 库。它允许您以编程方式创建报告。
更重要的是,您可以将当前报表用作模板,并通过 DynamicJasper 处理文本字段的字体大小。