Jasper 报告格式和字体问题

Jasper report formatting and font issues

我有以下 Jasper Report 子报表 .jrxml 文件,它产生了非常奇怪的结果。

报告中返回的每一行数据都神秘地分成了 2 行。具体来说,location_name 中的最后一个字符出现在新行中(除非数据中有逗号,在这种情况下新行从那里开始)。为什么会这样?

<?xml version="1.0" encoding="UTF-8"?>    
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports 
    http://jasperreports.sourceforge.net/xsd/jasperreport.xsd">

    <queryString>
        <![CDATA[SELECT substr(location_name, 1, 5) as location_name from location]]>
    </queryString>

    <field name="location_name" class="java.lang.String"/>

    <detail>        
        <band height="25">
            <textField>
                <reportElement x="0" y="0" width="100" height="25"/>

                <box topPadding="1"><topPen lineWidth="0.5"/></box>

                <textElement>    
                    <font fontName="Times New Roman" size="8" 
                     isBold="true" pdfFontName="Helvetica-Bold"/>
                </textElement>

                <textFieldExpression class="java.lang.String">
                    <![CDATA[$F{location_name}]]>
                </textFieldExpression>
            </textField>
        </band>
    </detail>    
</jasperReport>

一个可能的线索是,当我在 Jaspersoft Studio 中打开它时,我收到一条警告,“不推荐使用 pdf 字体,取而代之的是字体扩展名”。所以我尝试删除 fontNamepdfFontName,将 textElement 保留为:

                ...
                <textElement>
                    <font size="8" isBold="true" />
                </textElement>
                ...

这有助于每行数据现在显示在一行中,但是 isBold 没有效果。

除了解决方案,有没有人有关于如何在 Jasper 报告中加粗文本的示例?

我通过从 jasperreports-4.0.2.jar 升级到 jasperreports-[=14= 解决了这个问题]5.1.0.jar.