Печать динамических текстовых полей с помощью JasperReports

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

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

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

Спасибо


person Niroshan    schedule 12.09.2010    source источник


Ответы (2)


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

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

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

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

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

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

person Gordon    schedule 13.09.2010

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

person Giorgos Dimtsas    schedule 14.09.2010