高级 PDF 查看器

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

Pub Package

安装

将 _advance_pdf_viewer_ 添加为依赖项到 你的 pubspec.yaml 文件

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) {
    return 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