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