【问题标题】:Why is JasperReports truncating pdf text from jdk 1.5 to jdk1.7?为什么 JasperReports 将 pdf 文本从 jdk 1.5 截断到 jdk1.7?
【发布时间】:2014-02-11 19:00:53
【问题描述】:

我们目前正在一个单独的 SVN 分支中将一个项目从 jdk1.5.0_22 迁移到 jdk1.7.0_51、tomcat 5.5.35 到 tomcat 7.0.50 以及从 Ant 到 Maven3。

在新项目中,我们面临一个问题,即使用 jasperreports((jrxml 文件中的<staticText>)生成的 pdf 报告中的一些标签被截断,而在使用 jdk1.5、tomcat 5.5 和 Ant it 的项目中没有。

据此,我对问题的原因有以下假设:

  1. 马文;
  2. JDK 7 编译器;
  3. JDK 7 运行时;
  4. 雄猫;

这些是我为调查问题而采取的步骤:

  • 我检查了 jasper 库(包括 itext 和 struts-jasper-reports-plugin)是否与 pom 中声明的版本匹配;
  • 在 Maven 中,我运行了 dependency:list 和 dependency:tree 来检查是否使用了不同版本的 jasperreports;
  • 我使用不同的设置重新构建和重新部署了项目并比较了结果:
| jdk 编译器 | 1.7 | 1.7 | 1.5 | 1.5 | 1.5 | 1.7 | |运行时jdk | 1.7 | 1.7 | 1.5 | 1.7 | 1.7 | 1.7 | |马文 |是 |没有 |是 |是 |是 |是 | |雄猫 | 7 | 7 | 5.5 | 5.5 | 7 | 7 | |碧玉报告 | 3.7.2 | 3.7.2 | 3.7.2 | 3.7.2 | 3.7.2 | 5.5 | |截断 |是 |是 | N |是 |是 |是 |

从上面的结果来看,问题的根源似乎是jdk1.7运行时。

从这个假设来看,有两种可能:

  • 我们与 jasperreports 一起使用的 jdk 1.5 版本有一个错误,它忽略了 staticText 宽度,已在以下 jdk 版本中修复;
  • jasperreports 与 jdk 7 存在一些不兼容问题,尚未修复;

使用 JasperSoft Studio 插件打开报告显示,确实,jrxml 文件中的文本被截断,这表明它可能是我们不知道的 jdk 1.5 错误(并且很高兴被利用)。

无论如何,我想知道是否有人知道为什么会发生这种情况,是否有办法避免截断文本而无需编辑和重新编译我们拥有的所有报告。

谢谢!

【问题讨论】:

  • 如果没有尾随换行符,我已经看到 iReport 搞砸了自动换行(多行)标签。尝试在多行标签文本的末尾添加换行符。
  • @Durandal 谢谢!就我而言,它是单行的标签,但我会尝试一下,也许它会停止截断。
  • @Durandal 不,那没用...

标签: java maven tomcat jasper-reports


【解决方案1】:

经过一番窥探,我找到了一种方法:将 staticText 更改为 textField 并包括 isStretchWithOverflow="true"。

这将使我们能够快速调整所有报告,而无需一一调整它们的大小。

然后,我们将打开工单并一一调整报告,而不会影响我们的客户。

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2022-01-24
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多