flutter_fullpdfview

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_fullpdfview: latest_version

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

4. Import it

Now in your Dart code, you can use:

import 'package:flutter_fullpdfview/flutter_fullpdfview.dart';

Options

NameAndroidiOS
onViewCreatedVV
onRenderVV
onPageChangedVV
onErrorVV
onPageErrorVX
gestureRecognizersVV
filePathVV
fitEachPageVV
defaultPageVV
dualPageModeVV
displayAsBookVV
dualPageWithBreakVV
enableSwipeVV
swipeHorizontalVV
passwordVV
nightModeVX
passwordVV
autoSpacingVV
pageFlingVV
pageSnapVV
backgroundColorVV
fitPolicyVX

Only black and white are supported on Android and iOS at the moment!

Controller Options

NameDescriptionParametersReturn
getPageCountGet total page count-Future<int>
getCurrentPageGet current page-Future<int>
setPageGo to/Set pageint pageFuture<bool>
setPageWithAnimationGo to/Set pageint pageFuture<bool>
resetZoomGo page and fitToWidthint pageFuture<bool>
getZoomGet the current zoomdouble zoomFuture<double>
setZoomSet the current zoomdouble zoomFuture<double>
getPageWidthGet the pdf widthdouble widthFuture<double>
getPageHeightGet the pdf heightdouble heightFuture<double>

Example

PDFView(
  filePath: path,
  enableSwipe: true,
  fitEachPage: true,
  swipeHorizontal: true,
  autoSpacing: false,
  pageFling: false,
  defaultPage: 8,
  dualPageMode: orientation == Orientation.landscape,
  displayAsBook: true,
  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

apv Updated From: AndroidPdfViewer

iOS (only support> 11.0)

PDFKit

Libraries

flutter_fullpdfview