Печать динамических текстовых полей с помощью JasperReports - PullRequest
3 голосов
/ 12 сентября 2010

Я пишу программное обеспечение, в котором процесс установил текст JTextArea.JTextArea имеет предварительно заданную ширину и высоту.Если вводимый текст слишком длинный, размер шрифта изменяется, поэтому весь текст будет умещаться в границах JTextArea.

А потом я хочу напечатать это JTextArea.Печатная версия также должна иметь точные свойства, такие как мой пользовательский интерфейс.Я использую JasperReports для этого.

Но проблема в том, что я не могу найти способ динамического изменения размера шрифта в сгенерированном отчете.Есть ли способ сделать это?или, пожалуйста, приведите мне хороший справочник.

Спасибо

Ответы [ 2 ]

2 голосов
/ 13 сентября 2010

Один из возможных способов, который я нашел, состоит в том, чтобы создать пару полей с разными размерами шрифта друг над другом и создать разные выражения для печати для каждого из них.

Вы можете проверить длину строки вполе и отображать только те поля, которые соответствуют длине строки.

Что-то похожее на приведенное ниже может быть выполнено, если установлено как выражение для печати вашего поля.

($F{myField}.length() > 20 && $F{myField}.length() < 100) 

Выражение будет истиннымесли длина строки больше 20, но меньше 100.

Если вы создаете несколько этих полей, целесообразно обрабатывать разные длины.

1 голос
/ 14 сентября 2010

Вы можете взглянуть на библиотеку DynamicJasper . Это позволяет создавать отчеты программно. Более того, вы можете использовать свой текущий отчет в качестве шаблона и обрабатывать размер шрифта текстового поля с помощью DynamicJasper.

...