在JasperReports中设置文本字段

我知道如何将内联样式应用于JasperReports中的静态文本。 对文本元素(文本字段)也可以做同样的事情吗? 如果是的话,怎么样?

是的,您可以为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旗舰指南关于markup属性的引用:

Markup属性允许您使用特定的标记语言来格式化文本。 当你必须打印一些预先格式化的文本时,这是非常有用的,即在HTML或RTF中。 在示例中可以使用简单的HTML样式标记(如粗体和斜体)来突出显示特定的文本块。 可能的值如下:

  • 没有
    没有对文本进行处理,文本就像提供的那样完全打印。
  • 病急乱投医
    这种标记能够使用一组类似于HTML的标记来格式化文本,并且在Java环境中非常stream行。 它允许为文本块,颜色,背景,样式等设置特定的字体。 以编程方式来格式化文本通常是足够好的。
  • HTML
    如果你想在报告中打印一些HTML文本,这就是你所需要的,但是主要的用途是格式化文本,所以不要指望能够打印表格或添加图像。
  • RTF
    将标记设置为该值,内容将被解释为RTF代码。 RTF是以纯文本格式存储的stream行文档格式。 图19中的一小段文字“这是用RTF格式化的文本”已经使用string生成了:
    {\ 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}
    该string实际上是一个使用简单的文字处理器创build的RTF文件。
  • 报告字体
    这是一个预设字体的名称,从中可以得到所有的字符属性。 这个属性已经被弃用了,它只是出于兼容性的原因(这就是为什么它的标签是通过的。为了定义一个特定types的文本来遍历你的文档,使用一个样式。
  • 使用markup的示例在这里 。

    您可以使用style进行设置:

  • 共同的属性
  • graphics属性
  • 边框和填充属性
  • 文本属性
  • 另一个样本在这里 。

    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(); 

    样品在这里 。

    JasperReports API使用

    在使用JasperReports API的情况下,您可以设置样式,例如,在net.sf.jasperreports.engine.base .JRBasePrintText类的帮助下:

     JRPrintText text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider()); text.setStyle(boldStyle); 

    样品在这里 。