processTemplate static method

List<Widget> processTemplate(
  1. ReportTemplate template,
  2. List data, {
  3. DataSchema? schema,
  4. double scale = 1.0,
  5. dynamic onPageChanged(
    1. int
    )?,
})

Processes a template with data and returns a list of widgets

Implementation

static List<Widget> processTemplate(
  ReportTemplate template,
  List<dynamic> data, {
  DataSchema? schema,
  double scale = 1.0,
  Function(int)? onPageChanged,
}) {
  final pages = <Widget>[];

  for (int i = 0; i < data.length; i++) {
    final pageWidgets = <Widget>[];

    for (final element in template.sortedElements) {
      final positionedWidget = Positioned(
        left: element.x * scale,
        top: element.y * scale,
        child: SizedBox(
          width: element.width * scale,
          height: element.height * scale,
          child: renderElement(
            element,
            data[i],
            schema: schema,
            scale: scale,
          ),
        ),
      );
      pageWidgets.add(positionedWidget);
    }

    final page = Stack(key: ValueKey('page_$i'), children: pageWidgets);

    pages.add(page);
  }

  return pages;
}