我创建了一个.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文件时,只有文本即将到来。有人可以建议任何其他替代方案来实现这一目标吗?
答案 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>