flutter_pdfview

iOS 和 Android 的原生 PDF 查看器

将此包用作库

1. 依赖它

将此添加到您的 package 的 pubspec.yaml 文件中

dependencies:
  flutter_pdfview: ^1.0.4

2. 安装它

您可以从命令行安装包

使用 Flutter

$ flutter packages get

或者,您的编辑器可能支持 pub get 或 flutter packages get。请查看您的编辑器的文档以了解更多信息。

3. 设置

iOS

通过向应用的 Info.plist 文件添加一个布尔属性来选择加入嵌入式视图预览
键为 io.flutter.embedded_views_preview,值为 YES

# Info.plist
...
<key>io.flutter.embedded_views_preview</key>
<true/>
...

4. 导入

现在,在您的 Dart 代码中,您可以使用

import 'package:flutter_pdfview/flutter_pdfview.dart';

选项

名称 Android iOS 默认值
defaultPage 0
onViewCreated
onRender
onPageChanged
onError
onPageError
onLinkHandle
gestureRecognizers
文件路径
pdfData
fitPolicy FitPolicy.WIDTH
enableSwipe
swipeHorizontal
password
nightMode
password
autoSpacing
pageFling
pageSnap
preventLinkNavigation

控制器选项

名称 描述 参数 返回
getPageCount 获取总页数 - Future<int>
getCurrentPage 获取当前页 - Future<int>
setPage 跳转/设置页 int page Future<bool>

示例

PDFView(
  filePath: path,
  enableSwipe: true,
  swipeHorizontal: true,
  autoSpacing: false,
  pageFling: false,
  onRender: (_pages) {
    setState(() {
      pages = _pages;
      isReady = true;
    });
  },
  onError: (error) {
    print(error.toString());
  },
  onPageError: (page, error) {
    print('$page: ${error.toString()}');
  },
  onViewCreated: (PDFViewController pdfViewController) {
    _controller.complete(pdfViewController);
  },
  onPageChanged: (int page, int total) {
    print('page change: $page/$total');
  },
),

用于生产环境

如果您使用 proguard,您应该包含此行。

-keep class com.shockwave.**

GitHub

https://github.com/endigo/flutter_pdfview