pdfrx
pdfrx is a rich and fast PDF viewer and manipulation plugin built on the top of PDFium. Supports viewing, editing, combining PDFs on Android, iOS, Windows, macOS, Linux, and Web.
2.4.7
394K downloads/mo
#587 most downloaded on pub.dev
espresso3389/pdfrx
What this package is like to depend on
Last release 1 months ago
09 Jul 2026
Ships unpredictably
gaps range from 8 days to 4 months
Nearly every release is documented
notes for 238 of 260 stable releases
9 versions withdrawn
withdrawn after publishing
3 years old
271 releases · first in 2023
54 releases in the last 12 months
see the full history below
Release timeline
271 releases · Dec 2023 to Jul 2026Releases
latest 60 of 271-
2.4.709 Jul 2026Release notes
Open source →- Updated to
pdfium_flutter0.2.3 so iOS/macOS Swift Package Manager support is recognized by Flutter and pub.dev.
- Updated to
-
2.4.609 Jul 2026Release notes
Open source →- Updated to
pdfrx_engine0.4.5 to fix pub.dev documentation generation (#664). - Updated to
pdfium_flutter0.2.3 so iOS/macOS Swift Package Manager support is recognized by Flutter and pub.dev. - Added dependency lower bounds required by the current API usage.
- Updated to
-
2.4.509 Jul 2026Release notes
Open source →- Updated to
pdfrx_engine0.4.4. - FIXED: Text selection no longer treats generated spaces between distant text runs as huge selectable gaps.
- FIXED: Free text-drag selection now starts at the initial touch-down position, avoiding skipped leading characters on touch devices.
- FIXED: Text selection handles and context menus now keep stable widget identity when selection UI elements appear or disappear.
- FIXED: Nullable cache access in PDF file caching.
- Updated to
-
2.4.413 Jun 2026Release notes
Open source →- Updated to
pdfrx_engine0.4.3 andpdfium_flutter0.2.2. - FIXED:
PdfViewer.selectAllText()no longer attempts text selection before layout is available, avoiding a null-check crash (#654). - FIXED: PDFium initialization is now tracked on the caller isolate, avoiding repeated initialization attempts after worker-isolate initialization (#655).
- Relaxed dependency constraints for broader compatibility with Flutter package resolution.
- Updated to
-
2.4.327 May 2026Release notes
Open source →- FIXED: Cancel offscreen preview and partial page rendering requests to reduce memory spikes during rapid scrolling or dragging (#604, #626).
- FIXED: Avoid a
PdfViewernull-check crash when layout temporarily receives zero-height constraints (#646). - Added a Firebase Test Lab reproduction test for Android PDFium loading diagnostics (#645).
-
2.4.224 May 2026Release notes
Open source →- Removed
dart run pdfrx:remove_wasm_modules. WASM assets are now exclusively bundled with web builds automatically. (#647)
- Removed
-
2.4.115 May 2026Release notes
Open source →- DOCUMENTED: Added usage guidance for PdfOverlayInteractionRegion in overlay examples.
- DOCUMENTED: Added PdfViewerParams.underflowAnchor guidance to page layout documentation.
-
2.4.014 May 2026Release notes
Open source →- NEW: Added PdfOverlayInteractionRegion for tap-like interactions on page/viewer overlays without blocking viewer pan, zoom, text selection, or link handling (#376).
- NEW: Added PdfViewerParams.underflowAnchor to control how pages are aligned when they are smaller than the viewport (#111).
- FIXED: PdfViewerParams.scaleEnabled: false now also disables Ctrl+mouse wheel and pointer-scale zoom paths (#603).
- DOCUMENTED: Added a dark mode workaround for Flutter's text field selection color issue (#492).
- Improved deprecation messages for legacy PdfViewerParams sizing parameters (#637).
-
2.3.414 May 2026Release notes
Open source →- Fixed a crash when PdfTextSelectionParams.enabled is false and no selection color is provided by the app theme (#644).
-
2.3.311 May 2026Release notes
Open source →- Updated to
pdfrx_engine0.4.2 andpdfium_flutter0.2.1. - Fixed PDFium loading in Flutter tests on macOS (#640).
- Updated to
-
2.3.207 May 2026Release notes
Open source →- Updated to
pdfrx_engine0.4.1. - PdfViewer now supports PdfFontManager to natively support platform's font loading/additional font downloading.
- Updated to
-
2.3.106 May 2026Release notes
Open source →- WASM backend now supports
preferRangeAccess(#616). - Updated PDFium WASM to chromium/7811.
- WASM backend now supports
-
2.3.005 May 2026Release notes
Open source →- Updated to
pdfrx_engine0.4.0 andpdfium_flutter0.2.0. - Updated native PDFium binaries to chromium/7811.
- Improved native PDFium packaging:
- Android, Linux, and Windows use Dart native assets.
- iOS and macOS use the PDFium XCFramework without bundling a duplicate
libpdfium.dylib. - Flutter Web and other non-code-asset builds skip native PDFium link handling correctly.
- NEW: Pluggable scroll/zoom interaction architecture (#581)
- PdfViewerScrollInteractionDelegateProviderInstant (default) - instant updates (legacy behavior)
- PdfViewerScrollInteractionDelegateProviderPhysics - smooth, physics-based animations for mouse wheel and trackpad
- New parameter PdfViewerParams.scaleByPointerScale to control trackpad pinch/Ctrl+scroll sensitivity
- Shift+scroll now triggers horizontal scrolling (standard desktop behavior)
- NEW: Pluggable sizing/layout architecture (#582)
- PdfViewerSizeDelegateProviderLegacy (default) - maintains existing behavior
- PdfViewerSizeDelegateProviderSmart - responsive resizing with content centering and adaptive scaling
- PdfViewerZoomStepsDelegate for customizable double-tap zoom snap points
- DEPRECATED: maxScale, minScale, useAlternativeFitScaleAsMinScale, onePassRenderingScaleThreshold, and calculateInitialZoom parameters in PdfViewerParams - use sizeDelegateProvider instead
- NEW: PdfViewerController.maxScale getter
- NEW: PdfViewerController.goToPosition() method
- Updated to
-
2.2.2410 Jan 2026Release notes
Open source →- Updated to pdfrx_engine 0.3.9
- NEW:
PdfrxEntryFunctions.stopBackgroundWorker()to stop the background worker thread (#184, #430)
-
2.2.2309 Jan 2026Release notes
Open source →- pdfrx_engine 0.3.8
- NEW: PdfViewerParams.onDocumentLoadFinished callback to notify when document loading completes (or fails)
- Implemented PdfDocumentLoadCompleteEvent for WASM backend
-
2.2.2209 Jan 2026 withdrawnNothing published for this version
-
2.2.2109 Jan 2026 withdrawnNothing published for this version
-
2.2.2007 Jan 2026Release notes
Open source →- FIXED: Inconsistent environment constraints - Flutter version now correctly requires 3.35.1+ to match Dart 3.9.0 requirement (#553)
-
2.2.1906 Jan 2026Release notes
Open source →- Updated to pdfrx_engine 0.3.7 and pdfium_flutter 0.1.8
- IMPROVED: Add
isDirtyflag to page image cache to prevent cache removal before re-rendering page (#567) - FIXED:
round10BitFracshould not processInfinityorNaN(#550) - Updated Gradle wrapper to version 8.12 and Android plugin to version 8.9.1
- WIP: Adding PdfDocument.useNativeDocumentHandle/reloadPages
-
2.2.1816 Dec 2025 -
2.2.1709 Dec 2025Release notes
Open source →- Updated to pdfrx_engine 0.3.6
- FIXED: Trackpad and mouse wheel boundary issues on Web (#547, #548)
- FIXED:
_setZoomnow properly setsboundaryMargins - NEW: Ctrl+wheel zoom logic can be enabled on Web (#538)
- NEW:
PdfDateTimeextension type for PDF date string parsing - NEW:
PdfAnnotationclass for PDF annotation metadata extraction (#546)
-
2.2.1618 Nov 2025Release notes
Open source →- Updated to pdfrx_engine 0.3.4
- NEW: Progressive loading helper functions -
ensureLoaded()andwaitForLoaded() - NEW:
PdfPageStatusChange.pageproperty for easier access to updated page instances - NEW: Added comprehensive Progressive Loading documentation
-
2.2.1518 Nov 2025 -
2.2.1417 Nov 2025 -
2.2.1317 Nov 2025 withdrawnRelease notes
Open source →- FIXED: PdfTextSearcher not in sync on PdfDocument update (#515)
- FIXED: Focus.of -> Focus.maybeOf to prevent exceptions when FocusNode is not available (#518)
- FIXED: Crash when opening an empty PDF - now treated as a valid PDF to keep consistency with existing editing feature (#544)
- FIXED: PdfViewerParams.onGeneralTap one-click not working (#540)
- IMPROVED: Document reference comparison now uses key for better consistency (#543)
-
2.2.1213 Nov 2025Release notes
Open source →- FIXED: Package incorrectly showing as web-only on pub.dev due to incorrect Flutter plugin platform declarations (#535)
-
2.2.1113 Nov 2025Release notes
Open source →- FIXED: Magnifier content location calculated incorrectly (#532)
- NEW: Added PdfViewerController.localToDocument() and PdfViewerController.documentToLocal() methods for coordinate conversion
- Updated to pdfrx_engine 0.3.3
-
2.2.910 Nov 2025 -
2.2.830 Oct 2025Release notes
Open source →- NEW: PdfDocument now supports page re-arrangement and accepts PdfPage instances from other documents, enabling PDF combine/merge functionality
- Added
pdf_combineapp example demonstrating PDF merging capabilities - Updated to pdfrx_engine 0.2.4
-
2.2.724 Oct 2025 -
2.2.624 Oct 2025Release notes
Open source →- Added configurable timeout parameter to PdfDocument.openUri and
pdfDocumentFromUrifunctions (#509) - Updated to pdfrx_engine 0.2.3
- Added configurable timeout parameter to PdfDocument.openUri and
-
2.2.523 Oct 2025Release notes
Open source →- Experimental iOS/macOS direct symbol lookup to address SwiftPM TestFlight/App Store symbol lookup issues (#501)
pdfrxFlutterInitialize()now internally callsWidgetsFlutterBinding.ensureInitialized()- no need to call it explicitly- Updated to pdfrx_engine 0.2.2
-
2.2.420 Oct 2025Release notes
Open source →- FIXED: SwiftPM/pod package structure updates for iOS/macOS (#501)
- Updated to pdfrx_engine 0.2.1
-
2.2.316 Oct 2025Release notes
Open source →- POSSIBLE FIX: Error on
openFile()oropenAsset()on iOS production builds installed from AppStore/TestFlight (#501)
- POSSIBLE FIX: Error on
-
2.2.216 Oct 2025Release notes
Open source →- FIXED: InteractiveViewer ScrollPhysics pinch-zoom centering issues (#502)
-
2.2.114 Oct 2025 -
2.2.011 Oct 2025Release notes
Open source →- BREAKING: Renamed
PdfrxEntryFunctions.initPdfium()toPdfrxEntryFunctions.init()for consistency - NEW: Added
dart run pdfrx:remove_darwin_pdfium_modulescommand to remove PDFium dependencies from iOS/macOS when using alternative backends like pdfrx_coregraphics - Updated to pdfrx_engine 0.2.0
- BREAKING: Renamed
-
2.1.2611 Oct 2025Release notes
Open source →- FIXED: PDF not visible initially when loading takes relatively long (#495)
-
2.1.2506 Oct 2025 -
2.1.2406 Oct 2025 -
2.1.2304 Oct 2025Release notes
Open source →- FIXED: WASM+Safari StringBuffer issue with workaround (#483)
- Introduces PdfDocumentRefKey for more flexible PdfDocumentRef identification
- Updated to pdfrx_engine 0.1.21
-
2.1.2201 Oct 2025Release notes
Open source →- NEW: Introducing PdfViewerController.zoomOnLocalPosition and its variants for consistent zooming on cursor/finger position (#486, #462)
- PdfViewer now handles Ctrl+wheel to zoom up/down (#486)
-
2.1.2129 Sep 2025Release notes
Open source →- FIXED: Web compatibility issue where
dart:iowas imported in public-facing code
- FIXED: Web compatibility issue where
-
2.1.2029 Sep 2025Release notes
Open source →- Added PdfViewerParams.scrollPhysics and PdfViewerParams.scrollPhysicsScale so you can plug in custom ScrollPhysics for both panning and pinch-zoom interactions
- PR #481, #482, #484, #485 by enhancient
- FIXED: regression where
dart run pdfrx:remove_wasm_modulesfailed with dart_pubspec_licenses 3.0.12 (#443).
- Added PdfViewerParams.scrollPhysics and PdfViewerParams.scrollPhysicsScale so you can plug in custom ScrollPhysics for both panning and pinch-zoom interactions
-
2.1.1924 Sep 2025Release notes
Open source →- Maintenance release: applied
dart formatto keep code integrity with Dart 3.9/Flutter 3.29 tooling.
- Maintenance release: applied
-
2.1.1824 Sep 2025 -
2.1.1723 Sep 2025Release notes
Open source →- FIXED:
dart run pdfrx:remove_wasm_modulescould fail with "Too many open files" during WASM cleanup (#476) - Updated dependencies, including pdfrx_engine 0.1.18
- FIXED:
-
2.1.1622 Sep 2025Release notes
Open source →- #474 Add
PdfrxEntryFunctions.initPdfiumto explicitly call FPDF_InitLibraryWithConfig and pdfrxInitialize/pdfrxFlutterInitialize internally call it - #474 Add PdfrxEntryFunctions.suspendPdfiumWorkerDuringAction
- Documentation improvements for low-level PDFium bindings access/PDFium interoperability and initialization
- Updated to pdfrx_engine 0.1.17
- #474 Add
-
2.1.1518 Sep 2025Release notes
Open source →- FIXED: Package.swift does not point to pdfium-apple-v11 dependencies correctly
- More error handling logic for improved stability (#468)
- Updated to pdfrx_engine 0.1.16
-
2.1.1410 Sep 2025 -
2.1.1308 Sep 2025 -
2.1.1205 Sep 2025 -
2.1.1105 Sep 2025Release notes
Open source →- NEW: Experimental support for dynamic font installation on native platforms to handle missing fonts in PDFs (#456)
- Example viewer has missing font support using Noto Sans/Serif on Google Fonts (For production use, please take care of your license integrity)
- iOS/macOS uses pdfium-apple-v11 (chromium/7390)
- Updated to pdfrx_engine 0.1.14
- NEW: Experimental support for dynamic font installation on native platforms to handle missing fonts in PDFs (#456)
-
2.1.1003 Sep 2025Release notes
Open source →- NEW: Add
dismissPdfiumWasmWarningstopdfrxFlutterInitializeto optionally hide WASM warnings in debug (#452) - FIXED: Remove use of
.orCancelonanimateToto prevent animation cancellation errors (#454)
- NEW: Add
-
2.1.927 Aug 2025Release notes
Open source →- Replace deprecated Matrix4 methods (
translate->translateByDouble,scaled->scaledByDouble) for improved numerical precision
- Replace deprecated Matrix4 methods (
-
2.1.827 Aug 2025 -
2.1.726 Aug 2025Release notes
Open source →- Refactor InteractiveViewer to use Matrix4 double variants for better numerical precision
-
2.1.626 Aug 2025Release notes
Open source →- DOCS: Document initialization for Flutter (
pdfrxFlutterInitialize) and link to non-Flutter initialization (pdfrxInitialize). Closes #447 - No functional changes
- DOCS: Document initialization for Flutter (
-
2.1.523 Aug 2025Release notes
Open source →- FIXED: PdfDocumentViewBuilder was incorrectly reloading document on every widget change (#439)
-
2.1.423 Aug 2025Release notes
Open source →- FIXED: Text coordinate calculation when CropBox/MediaBox has non-zero origin (#441)
- Add support for dynamic font loading in WASM with PdfDocumentMissingFontsEvent
- Improve WASM stability and font handling mechanisms
- Update pdfrx_engine dependency to 0.1.13