Skip to content

Commit

Permalink
improving saving pdf
Browse files Browse the repository at this point in the history
  • Loading branch information
Paolo Pietrelli authored and Paolo Pietrelli committed Oct 18, 2024
1 parent eacc6d9 commit ed82c26
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 30 deletions.
26 changes: 13 additions & 13 deletions .firebase/hosting.YnVpbGQvd2Vi.cache
Original file line number Diff line number Diff line change
Expand Up @@ -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
68 changes: 51 additions & 17 deletions lib/control/excel_export_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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();
Expand Down

0 comments on commit ed82c26

Please sign in to comment.