# flutter_uc_pdfview
**Repository Path**: simplelove520/flutter_uc_pdfview
## Basic Information
- **Project Name**: flutter_uc_pdfview
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-12
- **Last Updated**: 2026-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# uc_pdfview
Base on Flutter PDF view for iOS and Android.
onError throw "Password required or incorrect password." for password protected PDF on both Android and IOS. See example for more details.
# Use this package as a library
## 1. Depend on it
Add this to your package's pubspec.yaml file:
```
dependencies:
uc_pdfview: ^0.0.1
```
### 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
...
io.flutter.embedded_views_preview
...
```
### 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` |
| getCurrentPage | Get current page | - | `Future` |
| setPage | Go to/Set page | `int page` | `Future` |
## Example
```dart
UCPDFView(
filePath: path,
enableSwipe: true,
swipeHorizontal: true,
autoSpacing: false,
pageFling: false,
onRender: (_pages) {
setState(() {
pages = _pages;
isReady = true;
});
},
onError: (error) {
print(error.toString());
if(error.toString().contains("Password required or incorrect password.")) {
// Show your Password Dialog supported both Android and IOS
}
},
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
[AndroidPdfViewer](https://github.com/barteksc/AndroidPdfViewer)
### iOS (only support> 11.0)
[PDFKit](https://developer.apple.com/documentation/pdfkit)
# Future plans
- Password Dialog for password protected PDF.
- Improve documentation.
- Improve performance on zooming, page changing.
- PDF Download option.