web-dev-qa-db-fra.com

Style d'un champ de texte dans JasperReports

Je sais comment appliquer le style en ligne au texte statique dans JasperReports. Peut-on faire de même pour les éléments de texte (champs de texte)? Si oui, comment?

19
ipavlic

Oui, vous pouvez appliquer un style aux éléments textField.

iReport utilisant

L'exemple de modèle de rapport:

<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>

La citation de iReport Ultimate Guide sur l'attribut markup:

Cet attribut Markup vous permet de formater le texte à l'aide d'un langage de balisage spécifique. Ceci est extrêmement utile lorsque vous devez imprimer du texte préformaté, c'est-à-dire en HTML ou RTF. De simples balises de style HTML (comme pour le gras et pour l'italique) peuvent être utilisées par exemple pour mettre en évidence un morceau particulier du texte. Les valeurs possibles sont les suivantes:

  • Aucun
    Aucun traitement sur le texte n'est effectué et le texte est imprimé exactement tel qu'il est fourni.
  • Style
    Ce balisage est capable de formater le texte à l'aide d'un ensemble de balises de type HTML et il est assez populaire dans les environnements Java. Il permet de définir une police spécifique pour des morceaux de texte, couleur, arrière-plan, style, etc. Il est souvent suffisant de formater le texte par programme.
  • [~ # ~] html [~ # ~]
    Si vous souhaitez imprimer du texte HTML dans votre rapport, c'est ce dont vous avez besoin, mais son utilisation principale est de formater le texte, alors ne vous attendez pas à pouvoir imprimer des tableaux ou ajouter des images.
  • [~ # ~] rtf [~ # ~]
    En définissant le balisage sur cette valeur, le contenu sera interprété comme RTF code. RTF est un format de document populaire stocké en texte pur. Le petit morceau de texte disant "ceci est un texte formaté en RTF" dans l'illustration 19 a été généré à l'aide de la chaîne:
    {\ rtf1\ansi\ansicpg1252\deff0\deflang1033 {\ fonttbl {\ f0\fswiss\fcharset0 Arial;} {\ f1\fnil\fprq2\fcharset0 Swift;}} {*\générateur Msftedit 5.41.15.1507 ;}\viewkind4\uc1\pard\f0\fs20 Il s'agit d'un texte\f1\fs52 formaté\f0\fs20 en RTF\par}
    La chaîne est en fait un fichier RTF créé à l'aide d'un simple traitement de texte.
  • Police du rapport
    Il s'agit du nom d'une police prédéfinie, à partir de laquelle seront prises toutes les propriétés des caractères. Cet attribut est obsolète et il n'est là que pour des raisons de compatibilité (c'est pourquoi l'étiquette est structurée. Pour définir un style de texte particulier à utiliser partout dans votre document, utilisez un style.

L'exemple d'utilisation de markup est ici .

Vous pouvez utiliser style pour définir:

  • Propriétés communes
    • Propriétés graphiques
    • Propriétés de bordure et de remplissage
    • Propriétés du texte

      L'autre exemple est ici .

      API DynamicJasper utilisant

      Si vous utilisez DynamicJasper API, vous pouvez définir le style à l'aide de ar.com.fdvs.dj.domain.builders.ColumnBuilder class:

      AbstractColumn columnState = ColumnBuilder.getNew()
      .addColumnProperty("state", String.class.getName())
      .addTitle("State").addWidth(new Integer(85))
      .addStyle(detailStyle).addHeaderStyle(headerStyle).build(); 
      

      L'échantillon est ici .

      API JasperReports utilisant

      Si vous utilisez API JasperReports , vous pouvez définir le style, par exemple, à l'aide de net.sf.jasperreports.engine.base .JRBasePrintText classe:

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

      L'échantillon est ici .

  • 37
    Alex K