Commit ba5672e

derdilla <derdilla06@gmail.com>
2023-06-22 14:26:32
move pdf creation to export file
1 parent 9b5d3b0
Changed files (2)
lib/model/export_import.dart
@@ -3,10 +3,11 @@ import 'dart:convert';
 import 'dart:io';
 import 'dart:typed_data';
 
-import 'package:blood_pressure_app/model/pdf_creator.dart';
 import 'package:blood_pressure_app/model/settings_store.dart';
 import 'package:csv/csv.dart';
 import 'package:path/path.dart';
+import 'package:pdf/pdf.dart';
+import 'package:pdf/widgets.dart' as pw;
 import 'package:sqflite/sqflite.dart';
 
 import 'blood_pressure.dart';
@@ -21,7 +22,7 @@ class DataExporter {
       case ExportFormat.csv:
         return createCSVCFile(records);
       case ExportFormat.pdf:
-        return await PdfCreator().createPdf(records);
+        return createPdfFile(records);
       case ExportFormat.db:
         return copyDBFile();
     }
@@ -136,6 +137,41 @@ class DataExporter {
     return records;
   }
 
+  Future<Uint8List> createPdfFile(List<BloodPressureRecord> data) async {
+    pw.Document pdf = pw.Document();
+
+    pdf.addPage(pw.Page(
+        pageFormat: PdfPageFormat.a4,
+        build: (pw.Context context) {
+          return pw.Center(
+            child: pw.Table(
+                children: [
+                  pw.TableRow(
+                      children: [
+                        pw.Text('timestamp'),
+                        pw.Text('systolic'),
+                        pw.Text('diastolic'),
+                        pw.Text('pulse'),
+                        pw.Text('note')
+                      ]
+                  ),
+                  for (var entry in data)
+                    pw.TableRow(
+                        children: [
+                          pw.Text(entry.creationTime.toIso8601String()),
+                          pw.Text(entry.systolic.toString()),
+                          pw.Text(entry.diastolic.toString()),
+                          pw.Text(entry.pulse.toString()),
+                          pw.Text(entry.notes)
+                        ]
+                    )
+                ]
+            ),
+          );
+        }));
+    return await pdf.save();
+  }
+
   Future<Uint8List> copyDBFile() async {
     var dbPath = await getDatabasesPath();
 
lib/model/pdf_creator.dart
@@ -1,42 +0,0 @@
-import 'dart:typed_data';
-
-import 'package:blood_pressure_app/model/blood_pressure.dart';
-import 'package:pdf/pdf.dart';
-import 'package:pdf/widgets.dart';
-
-class PdfCreator {
-  Future<Uint8List> createPdf(List<BloodPressureRecord> data) async {
-    Document pdf = Document();
-
-    pdf.addPage(Page(
-        pageFormat: PdfPageFormat.a4,
-        build: (Context context) {
-          return Center(
-            child: Table(
-              children: [
-                TableRow(
-                    children: [
-                      Text('timestamp'),
-                      Text('systolic'),
-                      Text('diastolic'),
-                      Text('pulse'),
-                      Text('note')
-                    ]
-                ),
-                for (var entry in data)
-                  TableRow(
-                    children: [
-                      Text(entry.creationTime.toIso8601String()),
-                      Text(entry.systolic.toString()),
-                      Text(entry.diastolic.toString()),
-                      Text(entry.pulse.toString()),
-                      Text(entry.notes)
-                    ]
-                  )
-              ]
-            ),
-          );
-        }));
-    return await pdf.save();
-  }
-}
\ No newline at end of file