Flutter desktop 在用户选择的位置保存 pdf

Flutter desktop save pdf in user selected location

我需要将发票另存为 pdf。 PdfServide 如下:

class PdfService {
  static Future<File> saveDocument({
    required String name,
    required Document pdf,
  }) async {
    final bytes = await pdf.save();
    final dir = await getApplicationDocumentsDirectory();
    final file = File('${dir.path}/$name');
    await file.writeAsBytes(bytes);

    return file;
  }

  static Future openFile(File file) async {
    final url = file.path;

    await OpenFile.open(url);
  }
}

将文件保存在 'C:\Users\username\Documents'

但我想将 pdf 文件保存在用户选择的位置。我怎样才能做到这一点?

使用 file_selector 和 file_selector_windows 包后:

[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getSavePath on channel plugins.flutter.io/file_selector)

file_selector plugin 提供了 getSavePath 功能来提示用户输入保存位置。

桌面实现尚未得到认可,因此现在您还需要添加对 file_selector_windows, file_selector_macos, and/or file_selector_linux 的依赖,以便为桌面平台启用插件。