onPrint method

  1. @override
Future<void> onPrint()
override

Implementation

@override
Future<void> onPrint() async {
  if (_excel == null) return;

  final pdf = pw.Document();
  final sheet = _excel!.tables[_currentSheet];

  if (sheet == null) return;

  pdf.addPage(
    pw.MultiPage(
      pageFormat: PdfPageFormat.a4.landscape,
      build: (context) => [
        pw.TableHelper.fromTextArray(
          headers: sheet.rows.first.map((e) => _getCellValue(e)).toList(),
          data: sheet.rows
              .skip(1)
              .map((row) => row.map((e) => _getCellValue(e)).toList())
              .toList(),
        ),
      ],
    ),
  );

  await Printing.layoutPdf(onLayout: (format) => pdf.save());
}