Да, вы можете применить стиль для textField
элементов.
iReport с использованием
Образец шаблона отчета:
<jasperReport ..>
<style name="ColoredField" style="Default" forecolor="#FF0000">
<conditionalStyle>
<style/>
</conditionalStyle>
</style>
...
<detail>
<band height="52" splitType="Stretch">
<!--Using the style declared in this template-->
<textField>
<reportElement key="textWithStyle" style="ColoredField" mode="Opaque" x="0" y="10" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{TASKS_SERIES}]]></textFieldExpression>
</textField>
<!--Basic formatting (set font and indent) using-->
<textField>
<reportElement key="textWithoutStyle" x="100" y="10" width="100" height="20"/>
<textElement>
<font fontName="Arial" size="14" isBold="true" isItalic="true" isUnderline="false"/>
<paragraph leftIndent="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{TASKS_TASK}]]></textFieldExpression>
</textField>
<!--Markup using: styled-->
<textField>
<reportElement x="200" y="10" width="590" height="42"/>
<textElement markup="styled"/>
<textFieldExpression><![CDATA["The static text without any format.\nThe field's data with bold format<style isBold='true'>:" + $F{TASKS_SUBTASK} + "</style>\n<style isBold='true' isItalic='true' isUnderline='true'>The static underlined text with bold and italic format</style>"]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
Цитата из iReport Ultimate Guide о атрибуте markup
:
Этот атрибут Markup
позволяет форматировать текстиспользуя определенный язык разметки.Это чрезвычайно полезно, когда вам нужно напечатать некоторый текст, который предварительно отформатирован, то есть в HTML или RTF.В качестве примера можно использовать простые теги в стиле HTML (например, жирный и курсив), чтобы выделить определенный фрагмент текста.Возможные значения:
Нет Обработка текста не выполняется, и текст печатается в точности так, как он указан. стилизованный Эта разметка способна форматировать текст, используя набор HTML-подобных тегов, и она довольно популярна в среде Java.Позволяет установить определенный шрифт для фрагментов текста, цвета, фона, стиля и так далее.Часто достаточно хорошо форматировать текст программно. HTML Если вы хотите напечатать некоторый HTML-текст в свой отчет, это то, что вам нужно, но его основное использование - это форматирование текста, поэтому не ожидайте, что сможете печатать таблицы или добавлять изображения. RTF При установке разметки на это значение содержимое будет интерпретироваться как код RTF.RTF - это популярный формат документов, хранящийся в чистом тексте.Небольшой фрагмент текста с надписью «это текст, отформатированный в RTF» на иллюстрации 19, был создан с использованием строки:{\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1033 {\ fonttbl {\ f0 \ fswiss \ fcharset0 Arial;} {\ f1 \ fnil \ fprq2 \ fcharset0 Swift;}} {* \ generator Msftedit 5.41.15.1507;} \ viewkind4 \uc1 \ pard \ f0 \ fs20 Это текст \ f1 \ fs52 в формате \ f0 \ fs20 в формате RTF \ par}Строка на самом деле является файлом RTF, созданным с использованием простого текстового процессора. Шрифт отчета Это имя предустановленного шрифта, из которого будут взяты все свойства символа.Этот атрибут устарел, и он существует только по причине совместимости (именно поэтому он обозначен меткой. Чтобы определить конкретный стиль текста, который будет использоваться во всем документе, используйте стиль.
Пример использования markup
здесь здесь .
Вы можете использовать style
для установки:
Общие свойства Графические свойства Границы и отступы Свойства текста
Другой пример: здесь .
DynamicJasper API с использованием
В случае использования DynamicJasper API вы можете установитьстиль с помощью ar.com.fdvs.dj.domain.builders.ColumnBuilder класс:
AbstractColumn columnState = ColumnBuilder.getNew()
.addColumnProperty("state", String.class.getName())
.addTitle("State").addWidth(new Integer(85))
.addStyle(detailStyle).addHeaderStyle(headerStyle).build();
Пример здесь .
API JasperReports с использованием
В случае использования API JasperReports вы можете установить стиль, например, с помощью net.sf.jasperreports.engine.base .JRBasePrintText класса:
JRPrintText text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider());
text.setStyle(boldStyle);
Образец здесь .