与JasperReports结合使用时,JFreeChart图表外观

时间:2013-04-10 12:01:30

标签: jasper-reports jfreechart appearance

我在我的java应用程序中使用JFreeChart来显示如下图表: enter image description here

但在使用JasperReports创建报告后,该图表现在看起来像这样: enter image description here

并非全部,这就是图表在应用程序生成的第一个PDF报告中的样子: first report

这就是我生成第二个报告时的样子,而不是更改任何内容,只是再次生成它: second report

每次重新启动应用程序时都会一次又一次地发生这种情况。在我创建报告之前,图表是可以的。发生了什么事?

2 个答案:

答案 0 :(得分:1)

看起来JasperReportsChartTheme中使用了更为平庸的BarPainter,可能是为了容纳处理渐变效果差的目标。

forum thread建议将所需主题直接应用于图表。 createLegacyTheme()方法“返回的ChartTheme不会对JFreeChart默认值进行任何更改。它或类似的东西可能值得一试:

StandardChartTheme.createLegacyTheme().apply(chart)

答案 1 :(得分:1)

我已将这些修改移到这里作为答案:

主题问题

感谢@trashgod我尝试了以下一行:

ChartFactory.setChartTheme(StandardChartTheme.createJFreeTheme());

如果我在应用程序中创建图表之前使用此行,则报告不再影响它们的外观。我认为在创建报告后只需将此行放一次就足够了。

所以现在我只有一个问题:第一个报告与后续报告不同:图表不同,字体更大胆而且没有抗锯齿...

第二次报告的问题

pdf问题不是由jasper报告或jfreechart引起的。这是Adobe Reader的一个问题。当您运行多个Adobe Reader实例时(例如,打开两个不同的文件时)会发生这种情况 问题的一个例子: enter image description here 类似问题: