我正在编写一个软件,其中一个流程将文本设置为JTextArea
。 JTextArea
具有先前设置的宽度和高度。如果输入文本太长,则会更改字体大小,因此整个文本将适合JTextArea
的边界。
然后我要打印此JTextArea
。打印版本还应具有类似我的用户界面的确切属性。我正在使用JasperReports
。
但问题是我找不到在生成的报告中动态更改字体大小的方法。有没有办法做到这一点?或者请指导我一些好的参考..
谢谢
答案 0 :(得分:2)
我找到的一种可能的方法是创建两个不同字体大小的字段,并为每个字段创建不同的打印表达式。
您可以在字段中检查字符串的长度,并仅显示适合字符串长度的字段。
如果将字段设置为字段的打印表达式,则可能会执行以下操作。
($F{myField}.length() > 20 && $F{myField}.length() < 100)
如果String长度大于20但小于100,则表达式为true。
如果您创建了多个这些字段,则应该适合处理不同的长度。
答案 1 :(得分:1)
您可以查看DynamicJasper库。它允许您以programmaticaly方式创建报告。 更重要的是,您可以将当前报告用作模板,并通过DynamicJasper处理文本字段的字体大小。