【问题标题】:JasperReports : soft hyphen supportJasperReports:软连字符支持
【发布时间】:2015-11-17 07:07:02
【问题描述】:

问题:在某些情况下,在 pdf 报告中打印用户输入内容(以多种不同语言)的现有系统最终会错误地分词,例如 "exampl-e"。

软连字符,是一种特殊的不可见符号,放置在单词之间,当单词不合适且必须断开时,该符号将提示系统在何处进行断开。

如果用户输入了"exam<theMagicSymbol>ple",那么如果要破译这个词,它就会像"examp-ple"。

问题:jasperReprots 中是否有任何现有的解决方案?

注意我是这个库的新手,但我找不到任何接近软包装支持的东西...

【问题讨论】:

    标签: java jasper-reports hyphen


    【解决方案1】:

    最简单的方法是直接使用textFieldExpression(在您的示例中,在打印文本之前使用正则表达式"<[^>]*>")es。

    <textFieldExpression><![CDATA[$F{field1}.replaceAll("<[^>]*>", "")]]></textFieldExpression>
    

    其他解决方案有:

    在碧玉textField 上指定markup="html"

    例子:

    <textField>
       <reportElement x="0" y="4" width="100" height="20" uuid="2cfd9640-f7ce-4bbe-a024-7b1b53d3b72b"/>
        <textElement markup="html">
          <paragraph lineSpacing="Single"/>
        </textElement>
        <textFieldExpression><![CDATA[$F{field1}]]></textFieldExpression>
    </textField>
    

    这会将文本处理为html,所有文本格式代码都将作为es。 &lt;b&gt;Test&lt;/b&gt; 将导致它 Test 并且所有非文本格式代码将被删除(例如 table、img ecc)。

    最终解决方案

    如果你仍然不满意,你需要更高级的代码来格式化你的文本,解决方案是你自己的类来格式化文本。

    简单示例:

    <textField>
        <reportElement x="0" y="4" width="100" height="20" uuid="2cfd9640-f7ce-4bbe-a024-7b1b53d3b72b"/>
        <textElement markup="none">
         <paragraph lineSpacing="Single"/>
        </textElement>
        <textFieldExpression><![CDATA[com.my.package.JasperReportTextHandler.format($F{field1})]]></textFieldExpression>
    </textField>
    

    使用静态方法在包com.my.package中创建java类JasperReportTextHandler:

    class JasperReportTextHandler{
      public static String format(String value){
       //... do your stuff regEx, split...
       return value;
      }
    }
    

    执行报告时,请确保 JasperReportTextHandler 在类路径中。

    玩得开心

    【讨论】:

    • Petter 你能否给我一些线索从哪里开始,我正在尝试使用没有任何 xml 的 jasper 库,只是纯 java api...我只需要创建一个带有表格的示例页面它(尝试炒作)。
    • 我使用的是 3.5.1(由于未来版本中的一些问题会阻止我们升级),但我找不到该版本的任何体面的文档或任何纯 Java 使用的教程......
    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多