您正在使用的 pdf 库似乎被设置为使用系统文件路径来加载 pdf。不幸的是,这与您有权访问的资产路径不同,Flutter 目前不支持在运行时获取资产系统文件路径的功能。我找到使用该库的唯一方法是将文件传输到已知目录,然后从那里加载。我不建议这样做,而是推荐本机_pdf_视图 https://pub.dev/packages/native_pdf_view库,因为它支持资源加载以及全屏。您应该能够按如下方式实现它:
final pdfController = PdfController(
document: PdfDocument.openAsset('assets/copy.pdf'),
);
return Scaffold(
body: Center(
child: PdfView(
controller: pdfController,
)
),
);
- 编辑 -
要切换页面,如果您想在不同页面上启动查看器,只需编辑 pdfController 中的initialPage
final pdfController = PdfController(
document: PdfDocument.openAsset('assets/copy.pdf'),
initialPage: 2
);
如果您想在创建 pdfView 后切换页面,您可以从任何地方调用 JumpToPage() 或 animateToPage(),前提是您可以获得 pdfController 的引用,并且它和 pdfView 已被实例化。
return Scaffold(
body: Stack(
children: [
Center(
child: PdfView(
controller: pdfController,
)
),
RaisedButton(
child: Text("Page 2"),
onPressed: (){
pdfController.jumpToPage(2);
// -- or --
pdfController.animateToPage(2, duration: Duration(seconds: 1), curve: Curves.linear);
},
),
],
),
);