我使用Flutter-web
,我想导出一个pdf。我正在使用pdf包,我正试图从他们的文档中实现一个简单的例子。更具体地说,我有一个名为export_pdf.dart
的文件,其中的代码如下:
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';
import 'package:universal_io/io.dart';
import 'package:path_provider/path_provider.dart';
exportPdf() async {
final pdf = Document();
pdf.addPage(Page(
pageFormat: PdfPageFormat.a4,
build: (Context context) {
return Center(
child: Text("Hello World"),
); // Center
})); // Page
final output = await getTemporaryDirectory();
final file = File("${output.path}/example.pdf");
await file.writeAsBytes(await pdf.save());
}
当我通过点击按钮调用exportPdf()
函数时,我得到以下错误。
Uncaught (in promise) Error: MissingPluginException(No implementation .在通道上找到getTemporaryDirectory方法plugins.flutter.io/path_provider)
我一直在寻找这个问题很长一段时间,但没有解决方案已经解决了这个问题。
即使path_provider
包被导入,getTemporaryDirectory()
也不会被调用,就像它不存在一样。
我还需要提到,我使用universal_io
,而不是dart:io
,因为我使用flutter_web
。
此错误出现在我调用的每个函数中,并存在于path_provider/path_provider.dart
文件中。我还在path_provider/path_provider.dart
中添加了一个简单的打印函数,我得到了一个错误,该方法没有找到。
感谢您的宝贵时间。
执行以下命令
flutter clean
flutter pub get
flutter run
确保在第一个命令之后,build
文件夹被删除。
我发现目前这个包不支持web文件保存,建议使用打印插件打印或共享文件