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.2.7
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. 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');
},
),
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