flutter-阅读本地PDF文档

本地PDF阅读主要使用到以下两个插件:
flutter_pdfview:提供多种关于pdf文档的操作方法。详细请见:https://github.com/endigo/flutter_pdfview
path_provider:提供获取用户存储文件路径的方法。
主要的思路很简单;
1 读取assets中的pdf文档到内存中;
1.1 在assets文档中添加本地的pdf文档;
1.2 创建获取assets中文件的方法;

   //提供方法获取pdf文档内容
  Future<File> getfileFromAssets(String fileas) async {
    try {
      //获取file中的数据
      var data = await rootBundle.load(fileas);
      //将数据转为byte类型的数据
      var byte = data.buffer.asUint8List();
      //存储数据路径
      var dir = await getApplicationDocumentsDirectory();
      File file = File("${dir.path}/mypdf.pdf");
      //将数据写入file中
      File assetFile = await file.writeAsBytes(byte);
      return assetFile;
    } catch (e) {
      print(e.toString());
    }
  }

2 使用插件中的方法读取pdf对应内容;
2.1 创建pdf展示界面,并提供翻页按键:

//具体的pdf页面的设置
class PdfPage extends StatefulWidget {
  final String path;

  const PdfPage({Key key, this.path}) : super(key: key);

  @override
  _PdfPageState createState() => _PdfPageState();
}

class _PdfPageState extends State<PdfPage> {
  int totalpages = 0;
  bool pdfready = false;
  PDFViewController pdfviewController;
  var _currentPage = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("my doc"),
      ),
   
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值