NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4357 most downloaded on npm
Display PDFs in your React app as easily as if they were images.
Last release 10 days ago
10 Sep 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
12 years old
157 releases · first in 2014
Updated PDF.js to 2.10.377 (#900).
Added canvasBackground prop (#851). Thanks, @paescuj!
canvasBackground prop (#851). Thanks, @paescuj!Fixed LinkService crashing given already-resolved dest (#869).
One column per quarter.
Updated PDF.js to 2.9.359 (#818).
Replaced pdfjs-dist build with legacy ES5 version (#794). Thanks, @njleonzhang!
Updated PDF.js to 2.9.359 (#818).
Changed async/await syntax to Promises, reducing build size significantly (#807).
Fixed file prop type checker not accepting data as string (#800).
file prop type checker not accepting data as string (#800).Made documentation on bundler-specific entry files clearer.
onLoadProgress incorrectly listed as Page prop in README.Updated PDF.js from 2.5.207 to 2.6.347 (#746). Thanks, @andi-dev!
Improved memory management by destroying previous worker when file changes (#288, #305, #755). Thanks, @jeetiss!
Replaced worker-loader with file-loader in Webpack-specific entry file (#93, #291, #496, #530, #558, #613, #685, #734, #756). Webpack-specific entry f
Updated PDF.js from 2.5.207 to 2.6.347 (#746). Thanks, @andi-dev!
Allow overriding of imageResourcesPath (#728). Thanks, @hchevalier!
imageResourcesPath (#728). Thanks, @hchevalier!Updated PDF.js to 2.5.207 (#686, #687).
Updated PDF.js to from 2.4.456 to 2.5.207 (#686, #687).
❗️ React-PDF now ships with ES6 Modules along with CommonJS modules. This allows for Webpack and other bundlers to optimize your code better.
❗️ = breaking change
error, loading, noData propTypes not accepting functions (#579).dir="rtl" (#588).ES6 builds of PDF.js are now used since Internet Explorer 11 support was dropped anyway.
Updated PDF.js from 2.3.200 to 2.4.456. Thanks, @kylemellander!
❗️ = breaking change
Updated PDF.js from 2.2.228 to 2.3.200.
❗️ Removed renderAnnotations backwards compatibility (#431).
❗️ = breaking change
sideEffects: false (#502). Thanks, @robsco-git!❗️ React-PDF now ships with ES6 Modules along with CommonJS modules. This allows for Webpack and other bundlers to optimize your code better.
❗️ = breaking change
error, loading, noData propTypes not accepting functions (#579).dir="rtl" (#588).Greatly improved documentation. Thanks, everyone!
error, loading, noData propTypes not accepting functions (#579).dir="rtl" (#588).Nothing published for this version
You can now use ref on Page and Outline components.
ref on Page and Outline components.error, loading, noData props (#390).TextLayer not properly recognized in some cases (#385).onParseError, onParseSuccess still documented despite being removed (#400).Fix onPassword and onLoadProgress props not working (#364).
onPassword and onLoadProgress props not working (#364).Fixed "Deprecated API usage: RenderTask.then method, use the promise getter instead" (#354).
span elements, making it easier to select the text.promise getter instead" (#354).Fixed "Error: Can't resolve 'babel-runtime/regenerator'" error (#310).
onPassword (#333). Thanks, @hdwatts!Using Parcel, if you decide for whatever reason to import from src directory instead of default dist, Parcel will properly recognize it and use proper
src directory instead of default dist, Parcel will properly recognize it and use proper Babel configuration.width/height props not working with scale prop correctly (#322).See Upgrade guide from version 3.x to 4.x.
See Upgrade guide from version 3.x to 4.x.
Note: React <16.3 is not supported. If you're still using React older than 16.3, please use react-pdf@^3.0.0 instead.
renderInteractiveForms flag.height prop on Page component to scale the page. height will be ignored if you provide width as well. More details in README.md (#236).<Page /> component.onPassword prop to overwrite default password prompt (#241).onLoadProgress callback to Document component to be updated on document loading progress. This may come in handy if you load PDF to be displayed from a web server (#238)renderMode prop to all Page components by adding it to wrapping Document component instead.externalLinkTarget prop which allows to configure target for external links rendered in annotations (#262).renderMode none which does not render the main layer at all (#283).setOptions function has been replaced with much more powerful options prop in Document component.max-width from rendered SVG to match Canvas rendering mode behavior (#251).renderAnnotations was renamed to renderAnnotationLayer for consistency. You don't need to change anything in your code just yet.onItemClick.Pinned down PDF.js version to 2.0.550 because of breaking changes in 2.0.943 (#298).
renderMode none which does not render the main layer at all (#283).renderAnnotations was renamed to renderAnnotationLayer for consistency. You don't need to change anything in your code just yet.You can now attach keyboard events to component.
<Page /> component.Added externalLinkTarget prop which allows to configure target for external links rendered in annotations (#262).
externalLinkTarget prop which allows to configure target for external links rendered in annotations (#262).Added support for password encrypted PDFs. You can use onPassword prop to overwrite default password prompt (#241).
onPassword prop to overwrite default password prompt (#241).renderMode.onLoadProgress callback to Document component to be updated on document loading progress. This may come in handy if you load PDF to be displayed from a web server (#238)renderMode prop to all Page components by adding it to wrapping Document component instead.max-width from rendered SVG to match Canvas rendering mode behavior (#251).onItemClick.null to scale prop.You can now use height prop on Page component to scale the page. height will be ignored if you provide width as well. More details in README.md (#236)
height prop on Page component to scale the page. height will be ignored if you provide width as well. More details in README.md (#236).Note: React <16.3 is not supported. If you're still using React older than 16.3, please use react-pdf@^3.0.0 instead.
Note: React <16.3 is not supported. If you're still using React older than 16.3, please use react-pdf@^3.0.0 instead.
renderInteractiveForms flag.setOptions function has been replaced with much more powerful options prop in Document component.This is most likely the last release from 3.x branch. It picks the bug fixes made during React-PDF 4.x development back to 3.x version for developers
This is most likely the last release from 3.x branch. It picks the bug fixes made during React-PDF 4.x development back to 3.x version for developers which chose to use older versions of React.
renderMode.error or loading props (#293). Thanks, @pimmey!null to scale prop.Fixed Page and Outline components not accepting pdf prop (#201).
pdf prop (#201).Fixed Page component callbacks like onLoadSucces or onClick not giving access to PDF.js methods like getTextContent (#159).
onLoadSucces or onClick not giving access to PDF.js methods like getTextContent (#159).Fixed Outline not working properly on some PDFs because of Page components not properly being registered.
Fixed AnnotationLayer not scaling with the page properly when Page component was given custom width prop (#173).
width prop (#173).Fixed customTextRenderer not getting text item index in itemIndex properly, fixed documentation.
itemIndex properly, fixed documentation.Updated dependencies of React-PDF as well as of its Sample and Test suites, most notably removed deprecated babel-preset-es2015 in favor of babel-pres…
See Upgrade guide from version 2.x to 3.x.
Document component, which makes styling much easier (#124).pageIndex and pageNumber props are now checked better. Now React-PDF will warn you when given pageIndex or pageNumber that does not exist in a given file.Outline.PageAnnotations rendering, especially in non-browser environments.PageAnnotations and PageTextContent components.babel-preset-es2015 in favor of babel-preset-env.customTextRenderer prop for custom text rendering in Page component (Canvas rendering mode only) (#163). Thanks, @juliakieserman!dist directories instead of build directories.Warning: Failed prop type: text appearing twice in custom PropTypes warning messages.React-PDF now supports Parcel bundler out of the box (#141).
customTextRenderer prop for custom text rendering in Page component (Canvas rendering mode only) (#163). Thanks, @juliakieserman!This is an emergency update because of breaking changes introduced in Mozilla's pdfjs-dist, which could have prevented you from using entry.noworker.j…
This is an emergency update because of breaking changes introduced in Mozilla's pdfjs-dist, which could have prevented you from using entry.noworker.js.
Context-based architecture. Now, React-PDF's components don't need to be direct descendants of Document component, which makes styling much easier (#1
Document component, which makes styling much easier (#124).dist directories instead of build directories.Updated dependencies of React-PDF as well as of its Sample and Test suites, most notably removed deprecated babel-preset-es2015 in favor of babel-pres…
Outline.PageAnnotations rendering, especially in non-browser environments.PageAnnotations and PageTextContent components.babel-preset-es2015 in favor of babel-preset-env.Warning: Failed prop type: text appearing twice in custom PropTypes warning messages.React-PDF now have a set of unit tests to ensure quality and reliability (#125).
pageIndex and pageNumber props are now checked better. Now React-PDF will warn you when given pageIndex or pageNumber that does not exist in a given file.This is an emergency update because of breaking changes introduced in Mozilla's pdfjs-dist, which could have prevented you from using entry.noworker.j…
This is an emergency update because of breaking changes introduced in Mozilla's pdfjs-dist, which could have prevented you from using entry.noworker.js.
Fix RenderingCancelledExceptions being thrown to the console after PDF.js rendering cancellation handling change (#122).
Fixed an error message "ReferenceError: window is not defined" appearing when using Server Side Rendering (#113).
Improved PDF loading performance.
File on a non-browser environments.Fixed Document-wide props taking priority over child props. For example, when you wanted to set rotate explicitly for one page, it would get overwritt
rotate explicitly for one page, it would get overwritten with global setting (#108).Fix DataCloneError when loading a PDF file from Base64 on Windows 8/8.1 on Internet Explorer (#95).
Support for internal links (e.g. in table of contents). For them to work you either need to provide onItemClick to and handle navigating by yourself o
onItemClick to <Document> and handle navigating by yourself or ensure that all pages are rendered within <Document>.inputRef prop to pass ref function through <Document> to its root <div> element.Implemented experimental SVG rendering (#55). In the future, SVG renderer will replace current solution, giving excellent performance and accessibilit
renderMode to svg in your Page component.setOptions (#85).
Added support for annotations. This means that active elements like links will now be clickable. You can turn off this feature by setting Page's compo
Page's component renderAnnotations flag to false (#80). Thanks, @flacerdk!inputRef to Page and Outline components. inputRef will behave like ref, only it will be applied to root elements returned by these components. This makes things like scrolling to a given page much easier.Fixed annotations layer covering up text layer, preventing it from being selectable.
Fixed annotations CSS not being added to build folder preventing React-PDF from being used when using its prebuilt version.
Added support for annotations. This means that active elements like links will now be clickable. You can turn off this feature by setting Page's compo
Page's component renderAnnotations flag to false (#80). Thanks, @flacerdk!inputRef to Page and Outline components. inputRef will behave like ref, only it will be applied to root elements returned by these components. This makes things like scrolling to a given page much easier.Your coding agent can read these notes before it upgrades. Set up the MCP server →