NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #585 most downloaded on pub.dev
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.
Last release 13 days ago
18 Sep 2026
Release timing varies
gaps range from 8 days to 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
9 versions withdrawn
withdrawn after publishing
3 years old
279 releases · first in 2023
Improves [End] button behavior to reach the actual end of document rather than the top of the last page
PdfViewerParams.pageAnchorEnd for specifying anchor for the "virtual" page next to the last pagePdfViewerParams.onePassRenderingScaleThreshold to specify maximum scale that is rendered in single rendering call
PdfViewerParams.perPageSelectionAreaInjector is introduced to customize text selection behaviorFixes flicker on scrolling/zooming that was introduced on 1.0.52
One column per month.
Fixes memory consumption control issues (Related: #121)
FIXED: memory leak on _PdfPageViewState
Introduces `PdfViewerParams.useAlternativeFitScaleAsMinScale` but it's not recommended to set the value to false because it may degrade the viewer per
PdfViewerParams.useAlternativeFitScaleAsMinScale but it's not recommended to set the value to false because it may degrade the viewer performanceiOS minimum deployment target 12.0
- intl 0.18.1
intl 0.18.1 (#87)Add note for Flutter 3.19/Dart 3.3 support on 1.0.0+
FIXED: calcZoomStopTable hangs app if zoom ratio is almost 0
calcZoomStopTable hangs app if zoom ratio is almost 0 (#79)`PdfRect.toRect`: scaledTo -> scaledPageSize
PdfRect.toRect: scaledTo -> scaledPageSizePdfJsConfiguration.cMapUrl/cMapPacked does not have correct default valuesCondition analysis warnings on auto-generated pdfium_bindings.dart
pdfium_bindings.dartRequires Flutter 3.19/Dart 3.3 again (pub.dev is upgraded to the stable🎉)
dart:js_interop based Pdf.js interop implementation (remove dependency on package:js)Due to the pub.dev version issues, the version introduces a "temporary workaround", which downgrades several packages:
sdk: '>=3.3.0-76.0.dev <4.0.0'flutter: '>=3.19.0-0.4.pre'web: ^0.4.2
I'll update them as soon as pub.dev upgrades their toolchainsNothing published for this version
Nothing published for this version
Nothing published for this version
_NOTE: On pub.dev, 1.0.0+ versions gets [[ANALYSIS ISSUE]](https://pub.dev/packages/pdfrx/versions/1.0.5-testing-version-constraints-1/score). It does
NOTE: On pub.dev, 1.0.0+ versions gets [ANALYSIS ISSUE]. It does not affect your code consistency but API reference is not available until pub.dev upgrades their toolchains.
Nothing published for this version
Nothing published for this version
Rollback version constraints to the older stable versions...
Again, flutter: '>=3.19.0-0.4.pre'
flutter: '>=3.19.0-0.4.pre'To make the pub.dev analyzer work, we should use sdk: '>=3.3.0-76.0.dev <4.0.0' as version constraint...
sdk: '>=3.3.0-76.0.dev <4.0.0' as version constraint...PdfViewerController.addListener/removeListener independently has listener list on it to make it work regardless of PdfViewer attached or not
PdfViewerController.addListener/removeListener independently has listener list on it to make it work regardless of PdfViewer attached or not (#74)Update Web code to use package:web (removing dependency to dart:html)
package:web (removing dependency to dart:html)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FIXED: `PdfViewerParams.boundaryMargin` does not work correctly.
PdfViewerParams.boundaryMargin does not work correctly.Add note for dark/night mode support on README.md; the trick is originally introduced by pckimlong on #46.
README.md; the trick is originally introduced by pckimlong on #46.PdfPageAnchor behavior with landscape pagesFIXED: PdfDocumentRefData's operator== is broken
PdfDocumentRefData's operator== is broken (#66)Marker example for `PdfTextSelectionParams.onTextSelectionChange`
PdfTextSelectionParams.onTextSelectionChange (#65)sourceName (#66)Introduces `PdfTextSelectionParams.onTextSelectionChange` (#65) to know the last text selection
PdfTextSelectionParams.onTextSelectionChange (#65) to know the last text selectionMinor updates on text selection (still experimental......)
Minor updates on text selection (still experimental...)
PdfPageViewCMake version "3.18.1+" for #48, #62
Introduces PdfJsConfiguration to configure Pdf.js download URLs
PdfJsConfiguration to configure Pdf.js download URLsDownload cache mechanism update (#57/#58)
- Document update
- Document update
Add `PdfViewerParams.calculateInitialPageNumber` to calculate the initial page number dynamically
PdfViewerParams.calculateInitialPageNumber to calculate the initial page number dynamicallyPdfViewerParams.onViewerReady to know when the viewer gets readyRemove explicit CMake version spec 3.18.1
FIXED: Link URI contains null-terminator
PdfTextSearcherREADME.md/example updatesPdfViewer.data/PdfViewer.customMinor fixes to `PdfTextSearcher`
PdfTextSearcher- README.md/example updates
README.md/example updatesMinor updates and README.md updates
README.md updatesIntroduces `PdfTextSearcher` that helps you to implement search UI feature
PdfTextSearcher that helps you to implement search UI feature (#47)FIXED: Able to scroll outside document area
Huge refactoring on `PdfViewerController`; it's no longer TransformationController but just a ValueListenable
PdfViewerController; it's no longer TransformationController but just a ValueListenable<Matrix4>
Introduces `PdfDocumentViewBuilder`/`PdfPageView` widgets
PdfDocumentViewBuilder/PdfPageView widgetsWeb: Now Pdf.js is loaded automatically and no modification to index.html is required!
index.html is required!PdfViewerParams.errorBannerBuilder to show internally thrown errorsPdfPasswordException is introduced to notify password errorPdfDocumentRef now has stackTrace for errorPdfFileCache now uses dedicated http.Client instanceNow `PdfDocumentRef` has const constructor and `PdfViewer.documentRef` is also const
PdfDocumentRef has const constructor and PdfViewer.documentRef is also constRemoves PdfDocumentProvider (Actually `PdfDocumentRef` does everything)
PdfDocumentProvider (Actually PdfDocumentRef does everything)firstAttemptByEmptyPassword should be true by default
firstAttemptByEmptyPassword should be true by defaultPdfDocumentProvider supercedes PdfDocumentStore
PdfDocumentProvider supercedes PdfDocumentStore (#42)PdfViewerController (#44)Your coding agent can read these notes before it upgrades. Set up the MCP server →