advance_pdf_viewer

一个用于处理PDF文件的Flutter插件。同时支持Android和iOS。最初是 https://github.com/CrossPT/flutter_plugin_pdf_viewer 的一个分支。

Pub Package

安装

你的pubspec.yaml文件 中将 advance_pdf_viewer 添加为依赖项。

advance_pdf_viewer: any

Android

无需权限。使用应用程序缓存目录。

iOS

无需权限。

如何操作

加载PDF

// Load from assets
PDFDocument doc = await PDFDocument.fromAsset('assets/test.pdf');
 
// Load from URL
PDFDocument doc = await PDFDocument.fromURL('http://www.africau.edu/images/default/sample.pdf');

// Load from file
File file  = File('...');
PDFDocument doc = await PDFDocument.fromFile(file);

加载页面

// Load specific page
PDFPage pageOne = await doc.get(page: _number);

预制查看器

使用预制的PDF查看器

@override
  Widget build(BuildContext context) {
    Scaffold(
        appBar: AppBar(
          title: Text('Example'),
        ),
        body: Center(
        child: _isLoading
            ? Center(child: CircularProgressIndicator())
            : PDFViewer(document: document)),
    );
  }

此代码将产生以下视图

Demo Screenshot 1


待办事项

  • 允许密码保护的文件
  • 重构PDFDocument.getAll()方法
  • 提高页面分辨率
  • 添加滑动切换页面

使用的第三方包

名称 描述
path_provider 一个Flutter插件,用于查找文件系统上常用的位置。支持iOS和Android。
flutter_cache_manager 一个 CacheManager,用于在应用的缓存目录中下载和缓存文件。可以更改文件保留时长等各种设置。
numberpicker NumberPicker 是一个自定义小部件,通过滚动微调器来选择整数或小数。
flutter_advanced_networkimage 一个高级图像提供商,为flutter应用程序提供缓存和重试功能。现在还具有可缩放的小部件和到图像小部件的过渡。

GitHub

查看 Github