Skip to content

JaseElder/flutter_pdfview

 
 

Repository files navigation

flutter_pdfview

Native PDF View for iOS and Android

Buy Me A Coffee

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_pdfview: 1.4.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. 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
onLoadComplete null
onDraw null
onError null
onPageError null
onLinkHandle null
gestureRecognizers null
filePath
pdfData
fitPolicy FitPolicy.WIDTH
enableSwipe true
swipeHorizontal false
password null
nightMode false
autoSpacing true
pageFling true
pageSnap true
preventLinkNavigation false
backgroundColor null

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>
getCurrentPageSize Return the width and height of the loaded page - Future<Size>
getScreenshot Create a PNG of the contents of the PDFView and save to fileName String fileName Future<String>
getPosition Get the position of the top left of the PDF with respect to the origin (top left of PDFView) - Future<Offset>
getScale Get the PDF zoom value, for zooming - Future<double>
setPosition Set the position of the top left of the PDF with respect to the origin (top left of PDFView) Offset position Future<bool>
setScale Set the PDF zoom value, for zooming double scale Future<bool>
setZoomLimits Set the minimum, maximum and mid bounds of the zoom limits double minZoom, double midZoom, double maxZoom -
reload Reload the PDF document in the PDFView - Future<bool>

Example

PDFView(
  filePath: path,
  enableSwipe: true,
  swipeHorizontal: true,
  autoSpacing: false,
  pageFling: false,
  backgroundColor: Colors.grey,
  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');
  },
  onLoadComplete: (int? pages) {
    print('# of pages: $pages');
  },
  onDraw: () {
    print('onDraw');
  },
),

Dependencies

Android

AndroidPdfViewer

iOS (only support> 12.0)

PDFKit

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

Support

Buy Me A Coffee

Donate with PayPal button

Star History

Star History Chart

Developer

About

PDF view for Flutter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Dart 37.8%
  • Objective-C 32.2%
  • Java 23.2%
  • Ruby 3.0%
  • Swift 2.3%
  • Python 1.5%