flutter_pdfview
Native PDF View for iOS and Android
Use this package as a library
1. Depend on it
Add this to your package’s pubspec.yaml file:
dependencies:
flutter_pdfview: ^1.0.4
2. Install it
You can install packages from the command line:
with Flutter:
$ flutter packages get
Alternatively, your editor might support pub get or flutter packages get
. Check the docs for your editor to learn more.
3. Setup
iOS
Opt-in to the embedded views preview by adding a boolean property to the app’s Info.plist
file with the key io.flutter.embedded_views_preview
and the value YES
.
# Info.plist
...
<key>io.flutter.embedded_views_preview</key>
<true/>
...
4. Import it
Now in your Dart code, you can use:
import 'package:flutter_pdfview/flutter_pdfview.dart';
Options
Name | Android | iOS | Default |
---|---|---|---|
defaultPage | ![]() | ![]() | 0 |
onViewCreated | ![]() | ![]() | null |
onRender | ![]() | ![]() | null |
onPageChanged | ![]() | ![]() | null |
onError | ![]() | ![]() | null |
onPageError | ![]() | ![]() | null |
onLinkHandle | ![]() | ![]() | null |
gestureRecognizers | ![]() | ![]() | null |
filePath | ![]() | ![]() | |
pdfData | ![]() | ![]() | |
fitPolicy | ![]() | ![]() | FitPolicy.WIDTH |
enableSwipe | ![]() | ![]() | true |
swipeHorizontal | ![]() | ![]() | false |
password | ![]() | ![]() | null |
nightMode | ![]() | ![]() | false |
password | ![]() | ![]() | null |
autoSpacing | ![]() | ![]() | true |
pageFling | ![]() | ![]() | true |
pageSnap | ![]() | ![]() | true |
preventLinkNavigation | ![]() | ![]() | false |
Controller Options
Name | Description | Parameters | Return |
---|---|---|---|
getPageCount | Get total page count | – | Future<int> |
getCurrentPage | Get current page | – | Future<int> |
setPage | Go to/Set page | int page | Future<bool> |
Example
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'); }, ),
For production usage
If you use proguard, you should include this line.
-keep class com.shockwave.**
Dependencies
Android
iOS (only support> 11.0)
Future plans
- Replace barteksc/AndroidPdfViewer with MuPDF or Android Native PDF Renderer.
- Improve documentation
- Support other platforms such as MacOS, Windows, Linux and Web
- Add search functionality
- Improve performance on zooming, page changing
- Improve image quality
- Write more test
Download flutter pdfview package souce code on GitHub
Provides the list of the opensource Flutter apps collection with GitHub repository.