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.**