https://github.com/crosspt/flutter_plugin_pdf_viewer
A flutter plugin for handling PDF files. Works on both Android & iOS
https://github.com/crosspt/flutter_plugin_pdf_viewer
flutter flutter-plugin pdf pdf-viewer
Last synced: 3 months ago
JSON representation
A flutter plugin for handling PDF files. Works on both Android & iOS
- Host: GitHub
- URL: https://github.com/crosspt/flutter_plugin_pdf_viewer
- Owner: CrossPT
- License: bsd-3-clause
- Created: 2019-03-07T15:48:46.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-01T00:56:45.000Z (over 3 years ago)
- Last Synced: 2024-06-18T21:46:22.587Z (over 1 year ago)
- Topics: flutter, flutter-plugin, pdf, pdf-viewer
- Language: Dart
- Homepage:
- Size: 586 KB
- Stars: 92
- Watchers: 7
- Forks: 308
- Open Issues: 71
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# flutter_plugin_pdf_viewer
A flutter plugin for handling PDF files. Works on both Android & iOS
## Installation
Add *flutter_plugin_pdf_viewer* as a dependency in [your pubspec.yaml file](https://flutter.io/platform-plugins/).
```
flutter_plugin_pdf_viewer: any
```
---
## Android
No permissions required. Uses application cache directory.
## iOS
No permissions required.
## How-to:
#### Load PDF
```
// Load from assets
PDFDocument doc = await PDFDocument.fromAsset('assets/test.pdf');
// Load from URL
PDFDocument doc = await PDFDocument.fromURL('http://www.africau.edu/images/default/sample.pdf');
// Load from file
File file = File('...');
PDFDocument doc = await PDFDocument.fromFile(file);
```
#### Load pages
```
// Load specific page
PDFPage pageOne = await doc.get(page: _number);
```
#### Pre-built viewer
Use the pre-built PDF Viewer
```
@override
Widget build(BuildContext context) {
Scaffold(
appBar: AppBar(
title: Text('Example'),
),
body: Center(
child: _isLoading
? Center(child: CircularProgressIndicator())
: PDFViewer(document: document)),
);
}
```
This code produces the following view:

---
## TODO
* Allow password-protected files
* ~~Refactor PDFDocument.getAll() method~~
* ~~Increase page resolution~~
* Add swipe to change page
---
#### Third-party packages used
| Name | Description |
|-|-|
| [path_provider](https://pub.dartlang.org/packages/path_provider) | A Flutter plugin for finding commonly used locations on the filesystem. Supports iOS and Android. |
| [flutter_cache_manager](https://pub.dartlang.org/packages/flutter_cache_manager) | A CacheManager to download and cache files in the cache directory of the app. Various settings on how long to keep a file can be changed. |
| [numberpicker](https://pub.dartlang.org/packages/numberpicker) | NumberPicker is a custom widget designed for choosing an integer or decimal number by scrolling spinners. |
| [flutter_advanced_networkimage](https://pub.dartlang.org/packages/flutter_advanced_networkimage) | An advanced image provider provides caching and retrying for flutter app. Now with zoomable widget and transition to image widget. |