DynamicReports 图表自动适应大小 - 生成可调整大小的统计图表
要使生成的统计图自动适应大小,您可以使用 DynamicReports 库提供的 'setAutoSize(true)' 方法。这将自动调整图表的大小以适应所分配的区域。
下面是一个使用 DynamicReports 库生成一个适应大小的统计图的示例代码:
import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;
import net.sf.dynamicreports.report.builder.chart.BarChartBuilder;
import net.sf.dynamicreports.report.builder.column.TextColumnBuilder;
import net.sf.dynamicreports.report.datasource.DRDataSource;
import net.sf.dynamicreports.report.exception.DRException;
import java.awt.*;
import java.io.File;
import java.io.FileNotFoundException;
import static net.sf.dynamicreports.report.builder.DynamicReports.*;
public class ChartExample {
public static void main(String[] args) throws FileNotFoundException, DRException {
JasperReportBuilder report = report();
// 创建数据源
DRDataSource dataSource = new DRDataSource('Category', 'Value');
dataSource.add('Category 1', 10);
dataSource.add('Category 2', 20);
dataSource.add('Category 3', 30);
// 创建文本列
TextColumnBuilder<String> categoryColumn = col.column('Category', 'Category', type.stringType());
// 创建数字列
TextColumnBuilder<Integer> valueColumn = col.column('Value', 'Value', type.integerType());
// 创建柱状图构建器
BarChartBuilder chart = cht.barChart()
.setTitle('Chart Example')
.setCategory(categoryColumn)
.addSerie(cht.serie(valueColumn));
// 设置柱状图自适应大小
chart.setAutoSize(true);
// 将数据源和图表添加到报表中
report.columns(categoryColumn, valueColumn)
.title(cmp.text('Chart Example'))
.summary(chart)
.setDataSource(dataSource);
// 导出报表为PDF文件
report.toPdf(new File('chart_example.pdf'));
}
}
这个示例代码创建了一个包含一个柱状图的报表。在创建柱状图时,我们使用 'setAutoSize(true)' 方法将图表设置为自动调整大小。这将确保生成的图表适应所分配的区域。
请注意,自动调整大小可能会导致图表的某些元素变得较小,以适应较小的区域。如果您希望图表具有固定的大小,请使用 'setWidth()' 和 'setHeight()' 方法来设置图表的宽度和高度。
原文地址: https://www.cveoy.top/t/topic/pfeZ 著作权归作者所有。请勿转载和采集!