saveFile method

Future<File?> saveFile({
  1. bool addTimestap = false,
  2. required File pdfFile,
  3. required PdfDocument pdfDoc,
})

Saves the modified pdfDoc either with or without a timestamp.

Implementation

Future<File?> saveFile({
  bool addTimestap = false,
  required File pdfFile,
  required PdfDocument pdfDoc,
}) async {
  try {
    final output = await getTemporaryDirectory();
    final String originalName = pdfFile.path.split('/').last.split('.').first;

    String savedPath = "";
    if (addTimestap) {
      final String timestamp =
          DateTime.now().millisecondsSinceEpoch.toString();
      savedPath = '${output.path}/${originalName}_$timestamp.pdf';
    } else {
      savedPath = '${output.path}/$originalName.pdf';
    }

    final file = File(savedPath);

    // Use streaming save method
    await _saveDocumentWithStreaming(pdfDoc, file);
    return file;
  } catch (e) {
    dev.log('Error saving file: $e');
    rethrow;
  } finally {
    pdfDoc.dispose();
  }
}