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

问题描述 投票:1回答:2

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

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

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

这就是我生成第二个报告时的样子,没有改变任何东西,只是再生成它:second report

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

jasper-reports jfreechart appearance
2个回答
1
投票

它看起来像JasperReports在它的BarPainter使用更平淡的ChartTheme,可能是为了容纳处理梯度差的目的地。

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

StandardChartTheme.createLegacyTheme().apply(chart)

1
投票

我在这里作为答案移动了编辑:

The theme problem

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

ChartFactory.setChartTheme(StandardChartTheme.createJFreeTheme());

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

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

The Problem of the second report

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

© www.soinside.com 2019 - 2024. All rights reserved.