如果单词的一部分使用 HTML 标记突出显示,Birt 会插入一个额外的 space

Birt inserts an extra space if part of the word is highlighted using an HTML tag



我在 Birt 的报告中遇到以下问题。我希望能够使用 HTML 标签 <b><i><u> 等突出显示报告中的文本。 如果我突出显示整个单词,那么一切正常。但是如果我只突出显示单词的一部分,那么 Birt 会用额外的 space:

拆分这样的单词

数据源:

<data>
    <text>&lt;b&gt;This&lt;/b&gt; is a text. T&lt;b&gt;his&lt;/b&gt; is another text.</text>
</data>

.rptdesign:

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.23" id="1">
    <property name="createdBy">Eclipse BIRT Designer Version 4.6.0.v201606072122</property>
    <property name="units">in</property>
    <property name="iconFile">/templates/blank_report.gif</property>
    <property name="bidiLayoutOrientation">ltr</property>
    <property name="imageDPI">96</property>
    <data-sources>
        <oda-data-source extensionID="org.eclipse.datatools.enablement.oda.xml" name="Data Source" id="4">
            <property name="FILELIST">data_sources/test_data_source.xml</property>
        </oda-data-source>
    </data-sources>
    <data-sets>
        <oda-data-set extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet" name="testDataSet" id="5">
            <list-property name="columnHints">
                <structure>
                    <property name="columnName">text</property>
                    <text-property name="heading">text</text-property>
                </structure>
            </list-property>
            <structure name="cachedMetaData">
                <list-property name="resultSet">
                    <structure>
                        <property name="position">1</property>
                        <property name="name">text</property>
                        <property name="dataType">string</property>
                    </structure>
                </list-property>
            </structure>
            <property name="dataSource">Data Source</property>
            <list-property name="resultSet">
                <structure>
                    <property name="position">1</property>
                    <property name="name">text</property>
                    <property name="nativeName">text</property>
                    <property name="dataType">string</property>
                    <property name="nativeDataType">12</property>
                </structure>
            </list-property>
            <xml-property name="queryText"><![CDATA[table0#-TNAME-#table0#:#[/data/text]#:#{text;STRING;}]]></xml-property>
            <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
  <Version>2.0</Version>
  <design:ResultSets derivedMetaData="true">
    <design:resultSetDefinitions>
      <design:resultSetColumns>
        <design:resultColumnDefinitions>
          <design:attributes>
            <design:identifier>
              <design:name>text</design:name>
              <design:position>1</design:position>
            </design:identifier>
            <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
            <design:precision>-1</design:precision>
            <design:scale>-1</design:scale>
            <design:nullability>Unknown</design:nullability>
          </design:attributes>
          <design:usageHints>
            <design:label>text</design:label>
            <design:formattingHints/>
          </design:usageHints>
        </design:resultColumnDefinitions>
      </design:resultSetColumns>
      <design:criteria/>
    </design:resultSetDefinitions>
  </design:ResultSets>
</model:DesignValues>]]></xml-property>
            <list-property name="privateDriverProperties">
                <ex-property>
                    <name>MAX_ROW</name>
                    <value>-1</value>
                </ex-property>
                <ex-property>
                    <name>XML_FILE</name>
                </ex-property>
            </list-property>
        </oda-data-set>
    </data-sets>
    <page-setup>
        <simple-master-page name="Simple MasterPage" id="2"/>
    </page-setup>
    <body>
        <text-data id="6">
            <property name="fontFamily">"Times New Roman"</property>
            <property name="fontSize">14pt</property>
            <property name="textAlign">justify</property>
            <property name="dataSet">testDataSet</property>
            <list-property name="boundDataColumns">
                <structure>
                    <property name="name">text</property>
                    <text-property name="displayName">text</text-property>
                    <expression name="expression" type="javascript">dataSetRow["text"]</expression>
                    <property name="dataType">string</property>
                </structure>
            </list-property>
            <expression name="valueExpr">row['text']</expression>
            <property name="contentType">html</property>
        </text-data>
    </body>
</report>

Word结果:

This is a text. T his is another text.

如何让多余的space不出现?

我的测试工程可以下载here

我用 eclipse-reporting-neon-R-win32-x86_64.zip 试过你的文件,效果很好。尝试升级您的编辑器或查看器。

这是一篇文字。这是另一个文本。 <<- 使用最新查看器 运行 时删除了格式,但没有空格。

如果您只是在 Word 中需要这个,请尝试导出为 DOC 而不是 DOCX。

有点晚了,但我在我的 BIRT 分支中修复了这个错误, 见 https://github.com/hvbtup/birt/commit/fee8b76a1c2b3f2df097d9f23214d0ebc1770f61 您可以分叉官方 BIRT 存储库 (https://github.com/eclipse/birt) 并将此修复应用于代码。