NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2102 most downloaded on npm
Generic build of Mozilla's PDF.js library.
Last release today
03 Oct 2026
Ships on a steady schedule
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
1566 releases · first in 2014
Nothing published for this version
Nothing published for this version
Changes: #8001 Release of 1.7.225 #7991 [Firefox addon] Enforce double quotes, using ESLint, to avoid linting errors in mozilla-central (issue 7957) #
Changes:
#8001 Release of 1.7.225
#7991 [Firefox addon] Enforce double quotes, using ESLint, to avoid linting errors in mozilla-central (issue 7957)
#7995 [Firefox addon] Enable the consistent-return ESLint rule (issue 7957)
#8003 Move EOF/isEOF from core/parser.js to core/primitives.js
#8006 Remove usage of mozFillRule
#7959 Display a notification on the sidebarToggle button for PDF documents with outline/attachments
#8016 Remove the unused isStream property on various Streams
#7972 Enable the no-unused-vars ESLint rule
#8023 Moves preprocessor stuff to the gulpfile.
#8025 Adjust the brace-style ESLint rule to disallow single lines (and also enable no-iterator)
#8027 [Firefox addon] Remove the unused MOZ_CENTRAL constant
#8002 [api-minor] Fix #7798: Refactor scratch canvas usage.
#8030 Interactive forms: rewrite AcroForms example
#8028 Prevent browser console errors during testing
#8035 [api-minor] Add a getDocument parameter that allows disabling of the NativeImageDecoder (e.g. for use with Node.js)
#8036 [api-minor] Fixes behaviour of DOMCanvasFactory to return {canvas, context}.
#8038 Moves sed processing into the preprocessing tasks and merging tasks.
#8039 Moving interactive examples to jsfiddle.net
#8040 Update localization files
#8041 Interactive forms: set the buttonValue for radio buttons that do not have a fieldValue
#8043 Allow automatic print rotation via the enablePrintAutoRotate preference
#8046 Replacing custom bundling with webpack 2
#8053 [Chromium addon] Prevent errors that break the addon, caused by the DEFAULT_URL constant being replaced by a defaultUrl viewer configuration parameter (PR 8046 follow-up)
#8054 Write the l10n files to the correct destination for gulp mozcentral builds (PR 8023 follow-up)
#8058 Fixes pdf.combined.js for webpack
#8056 Use ChildNode.remove instead of ChildNode.ParentNode.removeChild in a couple of places (bug 1334831, issue 8008)
#8060 Font ascent descent calculation fix
#8062 Improve the README by removing outdated information
#8063 Consume the current character when encountering illegal characters in Lexer.getObject, in order to prevent infinite loops during reading of streams (issue 8061)
#8067 Include the pdfjschildbootstrap.js file in the output for gulp mozcentral builds (PR 8023 follow-up)
#8070 New node.js check to protect from webpack.
#8065 Annotations: refactor setting the normal appearance stream
#8071 Always choose a (3, 1) cmap table for TrueType fonts that have an encoding specified, regardless of the Symbolic font flag (bug 1337429)
#8064 [api-minor] Refactor fetching of built-in CMaps to utilize a factory on the display side instead, to allow users of the API to provide a custom CMap loading factory (e.g. for use with Node.js)
#8080 Enable running the cmap unit-tests on Travis by utilizing a NodeCMapReaderFactory
#8024 Open PDF attachments in the viewer instead of an unconditional download
#8081 iOS Chrome: Fix broken download button
#8091 Gulp: migrate baseline target from make.js
#8105 Always check all Kids nodes, in Catalog.getPageDict, to avoid getting stuck in an empty node further down in the Pages tree (issue 8088)
#8102 Move compatibility code to the shared/compatibility.js.
#8107 Init PDFWorker via MesssagePort.
#8109 Add gulp task to generate refs.
#8106 Ensure that Dicts found in Object Streams are assigned an objId in XRef.fetch
#8110 Interactive forms: make choice widget options inheritable (issue 8094)
#8072 Annotations: move operator list addition logic to src/core/document.js
#8050 Replaces RequireJS to SystemJS.
#8115 [CONTRIBUTING.md] Remove any mention of the mailing list, and the weekly meetings
#8116 Get rid of a couple eslint-disable statements in web/download_manager.js by instead relying on the preprocessor dead-code removal added in PR 7942
#8087 Allows to pull pdf.js from pdf_viewer using require().
#8112 Support the newWindow flag in white-listed app.launchURL JavaScript actions (PR 7794 follow-up)
#8126 Ensure that we don't ignore 0 values in Page.getInheritedPageProp (issue 8125)
#8128 Network: use the current location to prevent errors when using CSP headers
#8120 Publishes processed sources into pdfjs-dist/lib
#8129 Return undefined instead of Dict.empty from Page.getInheritedPageProp for non-existent properties to prevent possible future bugs
#8130 Don't include web/compatibility.js in the output for gulp lib (PR 8120 follow-up)
#8138 Get rid of element.removeChild(element.firstChild) usage (bug 1345253)
#8132 Viewer: enable find functionality for small devices
#8144 Widget annotations: do not crash if Parent is not a dictionary during field name construction (issue 8143)
#8151 Remove unnecessary .toolbarButton.group CSS class
#8135 Handle cff fonts with erroneous stackSize (issue 8097)
#8156 Add (and adjust) a couple of findbar title attributes, in viewer.html, that doesn't agree with the l10n/en-US/viewer.properties file
#8154 Change to conditions that pdfjsLib
#8168 Normalize the BBox entry in Tiling Pattern dictionaries (issue 8117)
#8174 Adjust the yoda ESLint rule to apply to inequalities as well
#8172 Upstream the changes from bug 1345294 - nsIPrefBranch should have methods to get/set unicode strings
#8170 Try to recover when encountering JPEG markers with too short marker lengths (issue 8169)
#8164 Don't read past the EOI marker for JPEG images with non-default restart interval (issue 7828)
#8183 Ensure that PDFDocument.documentInfo doesn't fail during document load, when the entire XRef table hasn't been fetched yet (issue 8180)
#8184 Rethrow MissingDataException when needed
#8194 Use a proper MessageHandler for PartialEvaluator.getTextContent to avoid errors for fonts relying on built-in CMap files (PR 8064 follow-up)
#8196 Remove unnecessary xref parameters from various method signatures in PartialEvaluator, since this.xref is already available in the relevant scope
#8198 Example for converting PDF to PNG using the Node canvas library
#8195 Enable babel on sources
#8190 Try harder to find the next valid JPEG marker when decoding Scan data (issue 8182, issue 8189)
#8202 Add a couple of basic ES6 rules to the ESLint config
#8207 Use a simple RefSetCache to significantly improve the performance of Catalog.getPageDict for certain long documents (PR 8105 follow-up)
#8205 Improve the error handling when loading of built-in CMap files fail (PR 8064 follow-up)
#8210 Refactor removing of the zoomLayer into a helper method, and use that in PDFPageView.reset to ensure that the entire zoomLayer is actually removed (issue 8209)
#8232 Lazily load NetUtil.jsm in PdfStreamConverter.jsm.
#8218 Split pdfjschildbootstrap.js to avoid sync IPC
#8157 [api-minor] Reject the RenderTask with an actual Error, instead of just a string, when rendering is cancelled
#8222 ios: Patch cancelAnimationFrame whenever fakeRequestAnimationFrame is used
#8235 Disable the NativeImageDecoder in the node/pdf2svg.js example (issue 7901)
#8239 Stub out Firefox addon Telemetry wrapper
#8243 Don’t skip glyph 0 in cmap.
#8248 Version 1.8
One column per quarter.
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
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
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
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
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
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →