我在我的java应用程序中使用JFreeChart来显示如下图表:
但在使用JasperReports创建报告后,该图表现在看起来像这样:
并非全部,这就是图表在应用程序生成的第一个PDF报告中的样子:
这就是我生成第二个报告时的样子,而不是更改任何内容,只是再次生成它:
每次重新启动应用程序时都会一次又一次地发生这种情况。在我创建报告之前,图表是可以的。发生了什么事?
答案 0 :(得分:1)
看起来JasperReports
在ChartTheme
中使用了更为平庸的BarPainter
,可能是为了容纳处理渐变效果差的目标。
此forum thread建议将所需主题直接应用于图表。 createLegacyTheme()
方法“返回的ChartTheme
不会对JFreeChart
默认值进行任何更改。它或类似的东西可能值得一试:
StandardChartTheme.createLegacyTheme().apply(chart)
答案 1 :(得分:1)
我已将这些修改移到这里作为答案:
感谢@trashgod我尝试了以下一行:
ChartFactory.setChartTheme(StandardChartTheme.createJFreeTheme());
如果我在应用程序中创建图表之前使用此行,则报告不再影响它们的外观。我认为在创建报告后只需将此行放一次就足够了。
所以现在我只有一个问题:第一个报告与后续报告不同:图表不同,字体更大胆而且没有抗锯齿...
pdf问题不是由jasper报告或jfreechart引起的。这是Adobe Reader的一个问题。当您运行多个Adobe Reader实例时(例如,打开两个不同的文件时)会发生这种情况
问题的一个例子:
类似问题: