如何在颤动中保存pdf文件?

How to save pdf file in flutter?

我有一个 pdf 文件。我想将该文件写入 phone 内存?下面是代码。 首先我扫描然后我将图像转换为 pdf,现在我想将该 pdf 保存到 phone 内存中。请帮助我。

  void onDocumentScanner(BuildContext context) async {
try {
  File scannedDocumentFile;
  var doc = await DocumentScannerFlutter.launchForPdf(context);
  if (doc != null) {
    refreshDownloadedFiles();
    scannedDocumentFile = doc;
    String fileName = basename(scannedDocumentFile.path);
    final directory = (await getExternalStorageDirectory())!.path;
    File saveFilePath = File('$directory/$fileName');
    saveFilePath.openWrite(); //Here I want to save to the file

    print("Path = $fileName");
    Get.toNamed(AppRoutes.viewDownloadedFile,
            arguments: [scannedDocumentFile.path, fileName, folderId])!
        .whenComplete(() {
      refreshFetchedData();
    });
  }
} catch (e) {
  print(e);
}

}

我以前没见过 .openWrite() 方法,但 documentation 说它有 2 个命名参数 FileMode 和 encoding - 尝试指定它们。 如果不行,我只能分享我的解决方案,用 .writeAsBytes 方法。 您可以先捆绑数据,然后再保存,而不是 saveFilePath.openWrite()

final byteData = await rootBundle.load(fileName);
await saveFilePath.writeAsBytes(byteData.buffer
          .asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));