flutter_pdfview
A Flutter plugin that provides a PDFView widget on Android and iOS.
1.4.5
433K downloads/mo
#559 most downloaded on pub.dev
endigo/flutter_pdfview
What this package is like to depend on
Last release 16 days ago
08 Aug 2026
Release timing varies
gaps range from 2 weeks to 11 months
Nearly every release is documented
notes for 52 of 52 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
68 releases · first in 2019
18 releases in the last 12 months
see the full history below
Release timeline
68 releases · May 2019 to Aug 2026Releases
latest 60 of 68-
1.5.0-beta.1208 Aug 2026 pre-releaseNothing published for this version
-
1.5.0-beta.1108 Aug 2026 pre-releaseNothing published for this version
-
1.5.0-beta.1003 Aug 2026 pre-releaseNothing published for this version
-
1.5.0-beta.703 Aug 2026 pre-release -
1.5.0-beta.603 Aug 2026 pre-releaseRelease notes
Open source →1.5.0-beta.6
- Fix #175:
getScreenshotno longer returns a white image under hybrid composition (#356) - Includes everything in
1.5.0-beta.5
dependencies: flutter_pdfview: 1.5.0-beta.6
Note: pub.dev upload may lag briefly due to rate limiting; version is tagged and on
migrate/kotlin-swift. - Fix #175:
-
1.5.0-beta.503 Aug 2026 pre-releaseRelease notes
Open source →1.5.0-beta.5
- Fix load flash / first-layout size / iOS blank open (#355):
- Includes everything in
1.5.0-beta.4
dependencies: flutter_pdfview: 1.5.0-beta.5
-
1.5.0-beta.403 Aug 2026 pre-releaseRelease notes
Open source →1.5.0-beta.4
- Document Android AcroForm / fillable form field rendering limits (#303, #354)
- Includes everything in
1.5.0-beta.3
dependencies: flutter_pdfview: 1.5.0-beta.4
-
1.5.0-beta.303 Aug 2026 pre-releaseRelease notes
Open source →1.5.0-beta.3
- Add first-class
onTapcallback (Dart + Android + iOS) so single taps are reported from the native PDF view; prefer this overgestureRecognizers+TapGestureRecognizer(#133, #353) - Includes everything in
1.5.0-beta.2
dependencies: flutter_pdfview: 1.5.0-beta.3
- Add first-class
-
1.5.0-beta.203 Aug 2026 pre-releaseRelease notes
Open source →1.5.0-beta.2
- Document iOS platform-view composition limits for
ColorFiltered/ShaderMask/BackdropFilteroverPDFView, with official Flutter evidence and workarounds (#213, #352) - Includes everything in
1.5.0-beta.1(Kotlin + Swift native migration)
Install
dependencies: flutter_pdfview: 1.5.0-beta.2
pub.dev: https://pub.dev/packages/flutter_pdfview/versions/1.5.0-beta.2
Feedback: #351
- Document iOS platform-view composition limits for
-
1.5.0-beta.103 Aug 2026 pre-releaseRelease notes
Open source →Co-Authored-By: Claude Opus 5 (1M context) [email protected]
Claude-Session: https://claude.ai/code/session_01XKmmG2v9eJSWFDLy6mRe8F -
1.4.503 Aug 2026Release notes
Open source →Stable release of the
1.4.5-beta.1→1.4.5-beta.5line; no code changes since1.4.5-beta.5.Highlights since
1.4.4(see the beta sections below for the full list):- BREAKING: minimum Flutter 3.32.0 / Dart 3.8.0
- BREAKING: Android platform views now use true hybrid composition (
initExpensiveAndroidView) — fixes surface lock #263,EGL_NO_DISPLAYcrash #280, blanking on rotation #9 / dialogs #182 / load #298, and GPU glitches #306 - BREAKING: Android external PDF links only auto-launch
http/https; other schemes are reported throughonLinkHandlerinstead - iOS:
fitPolicy(WIDTH / HEIGHT / BOTH) implemented for Android parity, page fit decoupled fromautoSpacing#150,onErroron bad passwords/documents #211, white background and continuous scrolling #204, Privacy Manifest #271 - Android: Java 17 toolchain #334, dispose/memory-leak fixes #261, absolute-path loading #266,
libc++_shared.sopackaging #287 - New API:
minZoom/maxZoom#296,showScrollIndicators#337,onLoadComplete/onDraw,getCurrentPageSize(),getScreenshot(),getPosition()/setPosition(),getScale()/setScale(),reload(),setZoomLimits()#333 - Document remount when
filePath/pdfDatachanges #181
Migration from 1.4.4
- Raise your app to Flutter ≥ 3.32 and Dart ≥ 3.8.
- Android PDF views now use expensive hybrid composition (true platform views); re-check layout and gesture behavior if you embed
PDFViewin complex widget trees. - Non-
http(s)PDF links no longer auto-open — handle them yourself inonLinkHandler.
-
1.4.5-beta.502 Aug 2026 pre-releaseRelease notes
Open source →- Fix #150: iOS initial page fit no longer depends on
autoSpacing(spacing vs zoom decoupled); re-fit after placeholder→real bounds and on rotation while preserving user zoom - Implement
fitPolicy(WIDTH / HEIGHT / BOTH) on iOS for parity with Android (iOS previously ignored the flag and always auto-fit the full page; defaultFitPolicy.WIDTHnow matches Android) - Add regression tests for #150 creation-param independence (Dart iOS/Android + Android Robolectric) and iOS fit-scale formula oracle
- Make standalone Android unit tests runnable:
compileOnlyFlutter embedding jar, fixandroid/settings.gradle, addscripts/run_android_unit_tests.sh
- Fix #150: iOS initial page fit no longer depends on
-
1.4.5-beta.402 Aug 2026 pre-releaseRelease notes
Open source →- BREAKING: Raise minimum Flutter version to 3.32.0 and Dart SDK to 3.8.0 (aligns with
flutter_lints6 andformatter.page_width) - Android: switch platform views from texture hybrid composition (
initSurfaceAndroidView) to true hybrid composition (initExpensiveAndroidView) — fixesSurface was already locked!#263,EGL_NO_DISPLAYquick-open crash #280, blank on rotation #9, blank after dialogs #182, blank on load #298, and GPU glitches #306 - Fix Android layout direction to follow ambient
Directionality(was hardcoded RTL) - Fix #181: remount platform view when
filePath/pdfDatachanges so a new PDF can load - Fix #261: release Pdfium/PDFKit resources on dispose (Android recycle race + iOS observers/document/channel)
- Restrict Android external PDF link auto-launch to
http/https(avoidsfile://crashes and unsafe schemes); still reports all schemes viaonLinkHandler - Serialize concurrent
setPosition/setScalethrough a queue for any number of overlapping callers; null platform replies returnfalse - Compare
pdfDatavia cached digests instead of a full per-byte scan on every rebuild - Fix #268: avoid NaN CoreGraphics errors by initializing iOS
PDFViewwith a non-zero frame - Fix #204: iOS white background (not grey) and continuous vertical page scroll parity with Android
- Fix #266: load absolute filesystem paths via
fromFileon Android (No content provider) - Fix #287:
pickFirstpackaging forlibc++_shared.sonative merge conflicts - Defer Android PDF load until the view has non-zero size; safer dispose before surface draw races
- Propagate
nightModesetting updates to native Android view - Document
EagerGestureRecognizerfor PDFView inside scrollables #265 - Fix Android external PDF links silently failing on API 30+ package visibility (
resolveActivitypre-check) - Fix controller deadlock: a failed
setPosition/setScalecall permanently hung all later position/scale calls - Fix iOS silently showing a blank view for wrong/missing passwords — now fires
onError(parity with Android) - Fix iOS
getCurrentPage/onPageChangedreporting a garbage index (NSNotFound) before a page is loaded - Validate
thumbnailRatioto (0, 1] (Dart assert + Android clamp) — out-of-range values crashed rendering - Restructure Dart library into
lib/src/part files; public API unchanged - Adopt
flutter_lints6.0 with zero analyzer issues; dartdoc for the entire public API - Expand unit tests: controller method channel, native→Dart callbacks, document remount, creation settings
- Add 64 Android native unit tests (Robolectric/JUnit): URI handling, param parsing, link handler, thumbnail clamp
- Replace broken example widget test with home-screen / PDFScreen chrome coverage
- Fix Android
setPageresolving before the jump executes; reload pages whennightModechanges; handle unescapedfile:URIs on iOS
- BREAKING: Raise minimum Flutter version to 3.32.0 and Dart SDK to 3.8.0 (aligns with
-
1.4.5-beta.314 May 2026 pre-releaseRelease notes
Open source →- Fixed issue #337: Added showScrollIndicators option to control native scroll indicator visibility.
-
1.4.5-beta.202 May 2026 pre-releaseRelease notes
Open source →- Fix iOS PDF view reporting not ready when it is on initial load
- Add
minZoomandmaxZoomto the README.md - Fix Android memory leak by recycling
PDFViewon dispose
-
1.4.5-beta.128 Apr 2026 pre-releaseRelease notes
Open source →- Upgrade Java source/target compatibility from 1.8 to 17 #334
- Add iOS Privacy Manifest (PrivacyInfo.xcprivacy) #271
- Fix iOS
onErrorcallback not firing for invalid documents #211 - Fix iOS
onPageChangednot triggered on first load #66 - Fix iOS landscape PDF wrong initial zoom by preserving user-configured max scale factor #247
- Add configurable
maxZoomandminZoomparameters #296 - BREAKING: Raise minimum Flutter version to 3.27.0 and Dart SDK to 3.6.0
- Migrate
backgroundColorserialization from deprecatedColor.valuetoColor.toARGB32() - Update iOS deployment target to 13.0 in podspec and Package.swift (aligns with Flutter's own iOS 13.0+ requirement)
- Fix example app build error with undefined
nightModeBackgroundColorparameter - Add
onLoadCompletecallback triggered when the PDFView has loaded its document #333 @JaseElder - Add
onDrawcallback triggered on each draw within the PDFView #333 @JaseElder - Add
getCurrentPageSize()controller method returning width and height of the loaded page #333 @JaseElder - Add
getScreenshot(String fileName)controller method to save a PNG of the PDFView contents #333 @JaseElder - Add
getPosition()andsetPosition(Offset position)controller methods for the PDF top-left offset #333 @JaseElder - Add
getScale()andsetScale(double scale)controller methods for PDF zoom #333 @JaseElder - Add
reload()controller method to reload the PDF document #333 @JaseElder - Add
setZoomLimits(double minZoom, double midZoom, double maxZoom)controller method #333 @JaseElder - Add safe unboxing and completers for get/set viewport position to avoid contention and race conditions #333 @JaseElder
- Upgrade AndroidPdfViewer to 3.2.8 #333 @JaseElder
- Fix deprecated color
.valueusage #333 @JaseElder
-
1.4.413 Jan 2026 -
1.4.323 Sep 2025Release notes
Open source →- Stable Android 16KB page size support
- Fix iPad scroll direction crash issue #325
- Add defensive scroll view configuration for iPad devices
- Implement gesture conflict resolution to prevent "Failed to determine navigation direction for scroll" errors
- Add safe layout updates during scrolling animations
- Use more conservative scroll settings on iPad to improve compatibility
- Add iPad Safe Mode example in demo app for recommended PDF configurations on iPad
-
1.4.2-beta.115 Aug 2025 pre-releaseRelease notes
Open source →- Add Android 16KB page size support #321 @opsenes
- Update Android PDF viewer library to
io.github.oothp:android-pdf-viewer:3.2.0-beta05 - Upgrade Android Gradle Plugin to 8.11.1
- Upgrade Gradle wrapper to 8.14.3
- Enable AndroidX support
-
1.4.125 Jun 2025 -
1.4.1+126 Jun 2025 -
1.4.029 Dec 2024 -
1.4.0+117 Apr 2025 -
1.3.421 Oct 2024 -
1.3.318 Sep 2024 -
1.3.211 Oct 2023 -
1.3.113 May 2023 -
1.3.031 Mar 2023 -
1.2.915 Mar 2023 -
1.2.815 Mar 2023 -
1.2.715 Mar 2023Release notes
Open source →- Downgrade android-pdf-viewer from beta.3 to beta.2
- Upgrade Gradle to 7.3.0
-
1.2.614 Mar 2023 -
1.2.528 Sep 2022 -
1.2.428 Sep 2022 -
1.2.303 Aug 2022 -
1.2.201 Mar 2022 -
1.2.125 Aug 2021Release notes
Open source →- Updated dependencies to be newest with latest flutter version.
- Update minimal version of flutter to 2.2.0
- Updated compileSdkVersion in Android gradle to 30 because in future new apps on Google Play will have to set at least compile version to 30
- Updated README #148 @PcolBP
-
1.2.023 Aug 2021 -
1.1.004 Mar 2021 -
1.0.409 Dec 2020 -
1.0.322 Jun 2020 -
1.0.3+121 Jul 2020 -
1.0.3+229 Jul 2020 -
1.0.3+319 Aug 2020 -
1.0.3+415 Sep 2020 -
1.0.3+521 Sep 2020Release notes
Open source →- iOS proper scaling for PDF with pages on landscape-orientation #104 @andresath
-
1.0.3+619 Nov 2020 -
1.0.3+724 Nov 2020 -
1.0.3+825 Nov 2020 -
1.0.223 May 2020 -
1.0.2+128 May 2020 -
1.0.2+228 May 2020 -
1.0.2+301 Jun 2020 -
1.0.2+415 Jun 2020 -
1.0.125 Feb 2020 -
1.0.005 May 2019 -
1.0.0+105 May 2019 -
1.0.0+205 May 2019 -
1.0.0+305 May 2019 -
1.0.0+407 May 2019