GitPedia

Flutter cached pdfview

Enhanced PDF view for Flutter.

From binSaed·Updated June 11, 2026·View on GitHub·

A package to show Native PDF View for iOS and Android, support Open from a different resource like Path, Asset or Url and Cache it. The project is written primarily in Dart, distributed under the MIT License license, first published in 2020. Key topics include: android, cache, cached-pdfview, dart, flutter.

flutter_cached_pdfview

<a href="https://github.com/Solido/awesome-flutter"> <img alt="Awesome Flutter" src="https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square" /> </a>

Pub Version
GitHub repo size
issues-raw
license
last-commit
stars
Dart CI

<p align="center"> <a href="https://pub.dev/packages/flutter_cached_pdfview"> <img src="https://github.com/user-attachments/assets/77ccded4-5c51-4583-9830-0f1c66e627c4"> </a> <br>A package to show Native PDF View for iOS and Android, support Open from a different resource like Path, Asset or Url and Cache it.

Support = [ Android , IOS and WEB(soon) ];

  • Open Pdf From Path(local file)
  • Open Pdf From Asset
  • Open Pdf From URl and Cache it
  • Display horizontally or vertically
  • Drag and zoom
  • Double tap for zoom
  • Support password protected pdf
  • Jump to a specific page in the pdf

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.

iOS (only support> 11.0) you need to add this line in your ios/Podfile

platform :ios, '11.0'

ready-made in the Example

Import it

Now in your Dart code, you can use:

import 'package:flutter_cached_pdfview/flutter_cached_pdfview.dart';

Options

NameAndroidiOSDefault
defaultPage0
onViewCreatednull
onRendernull
onPageChangednull
onErrornull
onPageErrornull
onLinkHandlenull
gestureRecognizersnull
filePath
fitPolicyFitPolicy.WIDTH
enableSwipetrue
swipeHorizontalfalse
passwordnull
nightModefalse
autoSpacingtrue
pageFlingtrue
pageSnaptrue
preventLinkNavigationfalse
bockgroundColornull

Controller Options

NameDescriptionParametersReturn
getPageCountGet total page count-Future<int>
getCurrentPageGet current page-Future<int>
setPageGo to/Set pageint pageFuture<bool>

Example

from Asset

dart
PDF( enableSwipe: true, swipeHorizontal: true, autoSpacing: false, pageFling: false, backgroundColor: Colors.grey, onError: (error) { print(error.toString()); }, onPageError: (page, error) { print('$page: ${error.toString()}'); }, onPageChanged: (int page, int total) { print('page change: $page/$total'); }, ).fromAsset('assets/pdf/file-example.pdf'),

cached From Url

dart
PDF( swipeHorizontal: true, ).cachedFromUrl('https://ontheline.trincoll.edu/images/bookdown/sample-local-pdf.pdf'),

with placeholder until pdfFile download and errorWidget if there are problem

dart
PDF().cachedFromUrl( 'https://ontheline.trincoll.edu/images/bookdown/sample-local-pdf.pdf', placeholder: (progress) => Center(child: Text('$progress %')), errorWidget: (error) => Center(child: Text(error.toString())), )

For production usage

If you use proguard, you should include this line [ready-made in the Example].

-keep class com.shockwave.**

Dependencies

Flutter

flutter_pdfview

flutter_cache_manager

Android (only support >= api 20)

AndroidPdfViewer

iOS (only support> 11.0)

PDFKit

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> <input type="hidden" name="cmd" value="_s-xclick" /> <input type="hidden" name="hosted_button_id" value="YDEYAAGBXDDK6" /> <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" /> <img alt="" border="0" src="https://www.paypal.com/en_MN/i/scr/pixel.gif" width="1" height="1" /> </form>

Video

IOS

<img height=800 src="https://user-images.githubusercontent.com/33700292/84597606-ec4b6180-ae19-11ea-9013-b3b5a977a87a.gif">

WEB

Developer

Contributors

Showing top 2 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from binSaed/flutter_cached_pdfview via the GitHub API.Last fetched: 6/29/2026