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