Стиль текстового поля в JasperReports - PullRequest
19 голосов
/ 15 ноября 2011

Я знаю, как применить встроенный стиль к статическому тексту в JasperReports. Можно ли сделать то же самое для текстовых элементов (текстовых полей)? Если да, то как?

1 Ответ

37 голосов
/ 15 ноября 2011

Да, вы можете применить стиль для 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);

Образец здесь .

...