要使生成的统计图自动适应大小,您可以使用 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()' 方法来设置图表的宽度和高度。

DynamicReports 图表自动适应大小 - 生成可调整大小的统计图表

原文地址: https://www.cveoy.top/t/topic/pfeZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录