diff --git a/.firebase/hosting.YnVpbGQvd2Vi.cache b/.firebase/hosting.YnVpbGQvd2Vi.cache index 5f48666..cc51e13 100644 --- a/.firebase/hosting.YnVpbGQvd2Vi.cache +++ b/.firebase/hosting.YnVpbGQvd2Vi.cache @@ -18,18 +18,18 @@ canvaskit/chromium/canvaskit.js,1726048722000,c1dfde8615b48e2da75dae236a80b2fec4 assets/assets/uk_flag.png,1727822338539,3defb22886ee0faa63446a49686f9af8bf626124e61a2398a1b640e9889dd750 assets/assets/it_flag.png,1727822353018,a7d4ae8297db7676763da6c139efc0210878187fc8e38e0aa318f7bccd6456a1 assets/assets/Nanetta.png,1727786832640,5e3097b0caa40c5df3ec5f04926ff4b73406d49069ebb1d4fb5826c700c3805a -version.json,1729210712342,42573470d622f979b4fc5917fcc208d688e953c93dbe3ecb3cb8563def85ad1a -index.html,1729210686228,a57e699e2bd13d03920490784b453f074ef4c03232a85b3e761a41a19e4627ca -flutter_bootstrap.js,1729210686221,a481dced148364517091b4480edf5993654f76e81ebfbf5a795e58d5d79307c5 -flutter_service_worker.js,1729210713771,daef481172566acc287743b186a88a4e78e81feb4fc9aed72d8d2520785d26bf -assets/FontManifest.json,1729210712425,4eebc51684a189590cf731751ceeca7cad975e484c3b88d90f3a8d204c9108c9 -assets/AssetManifest.bin.json,1729210712425,432316dc2a7a54c0f7b13c7b79a8a405125a49545a830442be5f4cca974b4c9e -assets/AssetManifest.json,1729210712425,9d5c20a1abe834c30de46b4416dc3b806020b60cb91e93287afa54430e8a7d1c -assets/packages/cupertino_icons/assets/CupertinoIcons.ttf,1729210713388,0b5dc0b781f463f46d62a6c14accbc905ed181778c39673af4e36e01528297ae -assets/shaders/ink_sparkle.frag,1729210712499,c1bf2e040de157dc910cb5f6d0106a2ffe939bbe1ee6beac13fe9ccc25f0db67 -assets/AssetManifest.bin,1729210712425,78b01d3b2e676e2ce8e9ab64a7a2e3f64ebf5483b08a399d9730ad0183705f55 assets/assets/i18n/it.json,1729209863654,bb3e6f957207cc885f37a0dbe2ab3472533cafc5287f6c54d0cffbd50fda7e73 assets/assets/i18n/en.json,1729209806174,aa39a489ae6c41a34619a90a59b389bf6db3cf193b082df50e990d280904b945 -assets/fonts/MaterialIcons-Regular.otf,1729210713388,39455923b7891e95aad94657bb6a5cbb6752b4f9379abf2a01679a6992690f6a -assets/NOTICES,1729210712426,5b01cdb262ba1e92423cf127f70ddabbe8f59eb70cbb880a0c8332d79ef653ba -main.dart.js,1729210712052,8e2f8aee4825a3583292f1cf8827e2c80c923767a1f7fb7fdaa0eeaa2b48afa9 +version.json,1729212099932,42573470d622f979b4fc5917fcc208d688e953c93dbe3ecb3cb8563def85ad1a +index.html,1729212073937,a57e699e2bd13d03920490784b453f074ef4c03232a85b3e761a41a19e4627ca +flutter_bootstrap.js,1729212073930,11595b2291cda20c5694230e83d4051f95cd0fab767d3faaf75383e55479caa7 +assets/FontManifest.json,1729212100018,4eebc51684a189590cf731751ceeca7cad975e484c3b88d90f3a8d204c9108c9 +flutter_service_worker.js,1729212101304,6578c8719719d03a99d537b2d6d8b9e33dc62b73911f942d9fa4c262ffe54f98 +assets/AssetManifest.json,1729212100018,9d5c20a1abe834c30de46b4416dc3b806020b60cb91e93287afa54430e8a7d1c +assets/AssetManifest.bin.json,1729212100018,432316dc2a7a54c0f7b13c7b79a8a405125a49545a830442be5f4cca974b4c9e +assets/AssetManifest.bin,1729212100018,78b01d3b2e676e2ce8e9ab64a7a2e3f64ebf5483b08a399d9730ad0183705f55 +assets/packages/cupertino_icons/assets/CupertinoIcons.ttf,1729212100957,0b5dc0b781f463f46d62a6c14accbc905ed181778c39673af4e36e01528297ae +assets/shaders/ink_sparkle.frag,1729212100095,c1bf2e040de157dc910cb5f6d0106a2ffe939bbe1ee6beac13fe9ccc25f0db67 +assets/fonts/MaterialIcons-Regular.otf,1729212100957,39455923b7891e95aad94657bb6a5cbb6752b4f9379abf2a01679a6992690f6a +assets/NOTICES,1729212100019,5b01cdb262ba1e92423cf127f70ddabbe8f59eb70cbb880a0c8332d79ef653ba +main.dart.js,1729212099656,5151f7515a457dbfebcd10c4b676a517092015220c9aee1db41953b839a9e7de diff --git a/lib/control/excel_export_controller.dart b/lib/control/excel_export_controller.dart index a2c5404..779a925 100644 --- a/lib/control/excel_export_controller.dart +++ b/lib/control/excel_export_controller.dart @@ -8,7 +8,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:path_provider/path_provider.dart'; import 'package:pdf/pdf.dart'; -import 'package:pdf/widgets.dart'; import 'package:share_plus/share_plus.dart'; import 'package:pdf/widgets.dart' as pw; @@ -91,22 +90,57 @@ class ExcelExportController { data.add(row); } - // Add a page with a table to the PDF document - pdf.addPage( - pw.MultiPage( - pageFormat: - PdfPageFormat.a4.landscape, // Set the page format to landscape - build: (pw.Context context) { - return [TableHelper.fromTextArray( - headers: headers, - data: data, - headerStyle: pw.TextStyle(fontWeight: pw.FontWeight.bold), - cellStyle: const pw.TextStyle(fontSize: 10), - ) - ]; - }, - ), - ); + // Maximum number of rows per page (adjust as needed) + const int rowsPerPage = 12; + final int totalRows = data.length; + + // Add pages with tables to the PDF document + for (int startRow = 0; startRow < totalRows; startRow += rowsPerPage) { + final endRow = (startRow + rowsPerPage < totalRows) + ? startRow + rowsPerPage + : totalRows; + + // Create a page for the current set of rows + pdf.addPage( + pw.Page( + pageFormat: PdfPageFormat.a4.landscape, + build: (pw.Context context) { + return pw.Column( + children: [ + pw.Table( + border: pw.TableBorder.all(), + children: [ + // Add headers + pw.TableRow( + children: headers + .map((header) => pw.Padding( + padding: const pw.EdgeInsets.all(3.0), + child: pw.Text( + header.toString(), + style: pw.TextStyle( + fontWeight: pw.FontWeight.bold), + ), + )) + .toList(), + ), + // Add rows for the current page + for (var rowIndex = startRow; rowIndex < endRow; rowIndex++) + pw.TableRow( + children: data[rowIndex] + .map((cell) => pw.Padding( + padding: const pw.EdgeInsets.all(3.0), + child: pw.Text(cell), + )) + .toList(), + ), + ], + ), + ], + ); + }, + ), + ); + } // Save the PDF document final output = await pdf.save();