.rtf文件数据未在Jasper报告中呈现

时间:2015-11-16 07:30:54

标签: jasper-reports

我创建了一个.rtf文件,其中包含带有边框的内容。

cell 1  lots of text in cell two    cell 3

当我使用Markup作为rtf将rtf文件导出到jasper报告中时,我只获得了文本(数据下方)

cell 1lots of text in cell twocell 3

我使用的是TIBCO Jaspersoft Studio-6.1.1.final version jasper。

下面我要添加JRXML文件。

    <?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.1.1.final using JasperReports Library version 6.1.1  -->
<!-- 2015-11-16T12:10:05 -->
<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" name="Test_RTF" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e4e612e9-7787-4540-a6b9-b2d362a29f32">
    <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
    <queryString>
        <![CDATA[select '{\rtf1\ansi\deff0
\trowd
\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs
\cellx1000
\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs
\cellx2000
\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs
\cellx3000
cell 1\intbl\cell
lots of text in cell two\intbl\cell
cell 3\intbl\cell
\row
}' rtf_simple from dual]]>
    </queryString>
    <field name="RTF_SIMPLE" class="java.lang.String"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="125" splitType="Stretch">
            <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                <reportElement x="110" y="30" width="410" height="30" uuid="43e8a2fb-5db5-4290-8db7-51c93c330f22"/>
                <textElement markup="rtf"/>
                <textFieldExpression><![CDATA[$F{RTF_SIMPLE}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

这里我使用dual将rtf文本代码添加到select语句中。如果我将相同的文本添加到rtf文件。

我正在获取带边框的文字,但是当我将它添加到jasper报告中时,我只会收到文字。

[更新]

这是一个简化的用例。我们的实际要求是,我们将.rtf文件存储在DB中作为blob。我们想在我们的大报告之间插入这些文件的内容。这些rtf文件包含文本,表格和图像。当我试图读取此rtf文件时,只有文本即将到来。有人可以建议任何其他替代方案来实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

我觉得它类似于markup="html"你不应该指望jasper报告能够格式化表格,图片eccecc

<span style='border:5px solid red;color:red'>Test</span>

带有markup="html"

只会显示红色文字&#34;测试&#34;,因此没有红色边框

文本字段显示文本(格式化文本),因此标记(html和rtf)用于格式化文本(粗体,斜体,字体,大小,颜色)ecc。

不幸的是,您需要使用box命令为您的字段添加边框。

<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
  <topPen lineWidth="0.25"/>
  <leftPen lineWidth="0.25"/>
  <bottomPen lineWidth="0.25"/>
  <rightPen lineWidth="0.25"/>
</box>