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
Nothing published for this version
Nothing published for this version
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
Changes: #7236 Release of 1.5.188 #7237 Prevent accidentally overriding the error function in the commonobj messageHandler in api.js (issue 7232) #713
Changes:
#7236 Release of 1.5.188
#7237 Prevent accidentally overriding the error function in the commonobj messageHandler in api.js (issue 7232)
#7130 Add element to text layer even if width === 0
#7241 Makes importl10n and server async gulp functions.
#7202 Refactors dependencies of PDFViewerApplication on external services
#7240 Moves bundle target/task to gulpfile.js
#7251 Makes defines parameter non-optional in createBundle.
#7255 Mention web application usage in README.md
#7256 Port the publish target to Gulp
#7262 Fixes weird loop in the bidi.js.
#7254 Introducing EventBus for the viewer UI.
#7268 Better components examples.
#7266 Removes circular dependency of secondary toolbar on app.js.
#7272 Adds post UI control change events.
#7273 Prevent "Prefixed Fullscreen API is deprecated." warnings in the MOZCENTRAL version (issue 7270)
#7279 Fixes unneed conversion to array in CFF encodeInteger.
#7260 Moves all testing into gulpfile.
#7281 Fixes some static analysis warnings and recommendations
#7242 [Bug 1194700] Ensure that the customScaleOption is hidden in e10s
#7285 Split the font_spec.js unit-tests into cff_parser_spec.js and type1_parser_spec.js
#7298 Update link to CONTRIBUTING.md
#7301 Update grab_to_pan.js
#7302 Ignore 'endobj' commands inside of ObjStm streams (issue 5241, bug 898610, bug 1037816)
#7299 Prevent intermittent "Node was not found" errors when removing the zoomLayer in PDFPageView_draw
#7305 Remove streamsPrivate usage
#7244 Don't use shadow DOM for rendering <object>/<embed>
#7306 Enables debugger only when needed.
#7289 Disable pagechange event if page is not changing.
#7295 Use Dict_getArray in more places in src/core/ to avoid issues when Arrays contain indirect objects
#7313 Convert the secondary toolbar to a class
#7317 Moves DEFAULT_PREFENCES into JSON format.
#7315 Solving issue #7307, 'use strict' context in compatibility.js
#7332 Fixes AMD name in web/the pdf_viewer.js.
#7337 Attempt to combine text runs positioned with setTextMatrix
#7340 Add basic unit-tests for unicode.js
#7316 Remove unused variables
#7300 Prevent adding invalid values in CFFDict_setByKey (bug 1068432)
#7344 Remove support for frames in old Chromium versions
#7353 Resolve a regression in the Chromium extension's preferences handling
#7346 Support syncing of settings in Chrome extension
#7352 Let non-viewable Popup Annotations inherit the parent's Annotation Flags if the parent is viewable
#7362 Github -> GitHub
#7374 Fix errors in setGState in PartialEvaluator_getTextContent that prevents text-selection from working properly
#7370 Add opt-out telemetry to the Chrome extension
#7388 Fix typo in telemetry.js, follow-up to #7370
#7361 Attempt to recover valid format 3 FDSelect data from broken CFF fonts (bug 1146106)
#7389 Move the isSpace utility function from core/parser.js to shared/util.js
#7341 [api-minor] Improve handling of links that are using explicit destination arrays
#7404 Force inline block display style for <object>.
#7400 [Firefox addon] Change the minimum supported version to Firefox 38 and remove a bunch old no longer necessary fallback code
#7428 Unbreak the importl10n command by updating the links to point to hg.mozilla.org instead of mxr
#7430 Move Chromium URL rewrite to top of viewer.js
#7409 Upstream the changes from Bug 1242730 - Convert callsites to use channel.async0pen2() within browser/extensions/pdfjs (issue 7386)
#7437 [Firefox addon] Feature detect originAttributes to make it Seamonkey 2.40 compatible
#7427 Skip mapping of glyphs to Unicode "Ideographic space" (issue 7416)
#7438 Update README.md to only guarantee Firefox addon compatibility with the current ESR version
#7390 Add upper-case I as a possible space replacement fallback in Font.spaceWidth to improve text-selection (issue 7180)
#7463 Add back moz-specific fullscreen support code for MOZCENTRAL builds (bug 1268749, PR 7273 follow-up)
#7467 Add a getAttachments unit-test for a PDF file that actually contains attachments
#7441 Fallback to attempt to recover standard glyph names when amending the charCodeToGlyphId with entries from the differences array in type1FontGlyphMapping (issue 7439)
#7473 Update mxr.mozilla.org links to point to dxr.mozilla.org instead
#7453 Expose the text widget's maximum length.
#7455 Ensure that the necessary src/* dependencies are loaded before the viewer, when it's run with gulp server (issue 7448)
#7458 Consolidate updating of various Toolbar state (e.g. page and scale) in one method in PDFViewerApplication
#7479 Change the warn to info in recoverGlyphName to reduce the console spam
#7466 Remove handling of fallback arguments from PDFViewerApplication.open
#7480 Remove the obsolete MozBlobBuilder fallback from the createBlob utility function
#7481 [Firefox addon] Remove compatibility.js
#7478 optimize png images using zopflipng
#7489 trivial spelling fixes
#7485 Ensure that we don't reset the current page view if the user inputs an invalid page number (PR 7289 follow-up)
#7493 Catch errors and continue parsing in parseCMap (issue 7492)
#7490 Don't map glyphs to the Lepcha Unicode block (issue 7426)
#7447 Ignore .notdef in thedifferencesarray when building a fallback toUnicode map in PartialEvaluator_buildToUnicode (issue 5256)
#7347 Slightly refactor thefontRefhandling in PartialEvaluator_loadFont (issue 7403 and issue 7402)
#7505 Use the latest stable Node.js version on Travis CI and enable caching
#7506 Prevent errors when parsing Annotations with missing (or invalid) /Subtype entries (issue 7446)
#7475 [api-minor] Add a parameter to PDFPageProxy_getTextContent that controls whether PartialEvaluator_getTextContent will attempt to combine same line text items
#7502 Remove the previousPageNumber parameter from the pagechanging/pagechange events, and stop dispatching the events if the input is out of bounds
#7510 Remove previousPageNumber from the B2G viewer
#7511 Convert the B2G viewer from an extension to an example
#7519 Stop building the AMO extension
#7520 Add more unit-tests for primitives.js
#7526 Add validation of the rotation argument passed to set pagesRotation in PDFViewer
#7529 Log an error when the value passed to set currentPageNumber is out of bounds (PR 7502 followup)
#7532 Remove an obsolete comment for onAfterDraw in pdf_viewer.js
#7534 Add a parameter to the isName function that enables checking not just that something is a Name, but also that the actual name properties matches
#7548 Avoid window.print in a microtask
#7521 Bug 1291709 - PdfjsChromeUtils.jsm leaks browser.xul windows.
#7555 Add unit-tests for asynchronous methods in primitives.js
#7330 Try to prevent CanvasGraphics_getSinglePixelWidth from intermittently returning incorrect values in Firefox (issue 7188)
#7563 Upstream l10n changes from Bug 1259859.
#7573 [mobile-viewer] Add an async close method to the example, and change open to also be async (issue 7571)
#7540 Add a unit-test to check that ProblematicCharRanges contains valid entries
#7574 Remove unused globals from fonts unit test file
#7570 Create a fallback annotation id for entries in Annots dictionaries that are not indirect objects (issue 7569)
#7440 Prevent destinations with bad left/top values from scrolling the wrong page into view (bug 874482)
#7575 Update translations
#7387 Attempt to ignore multiple identical Tf (setFont) commands in PartialEvaluator_getTextContent (issue 5808)
#7579 Ensure that the zoom buttons are disabled correctly if the scale is smaller/larger than MIN_SCALE/MAX_SCALE in PDFViewerApplication._updateUIToolbar
#7583 Change the GoToPage Named Action to select the contents of the pageNumber input, rather than just focusing the element
#7539 [api-minor] Expanding divs to improve selection
#7585 Minor code style improvements after #7539
#7586 Move the Preferences initialization/fetching code to the top of PDFViewerApplication.initialize, and add a enhanceTextSelection preference to the viewer
#7592 Revert the commits from pull request #7586 for causing addon issues
#7407 Assign the quantizationTables after parsing the entire JPEG image, to prevent issues when the DQT (Define Quantization Tables) marker is encountered after SOF{n} (Start of Frame) markers (issue 7406)
#7591 Change src/core/jpg.js to use the error utility function instead of throwing
#7588 Use a WeakMap in src/display/text_layer.js
#7595 In display/api.js ensure that we always reject with an Error in JpegDecode, and adjust a couple of other rejection sites as well
#7596 Improve the structure for widget annotations
#7602 Render interactive form (AcroForm) text widget annotations
#7619 Only update the max-height of the SecondaryToolbar when it's actually visible
#7609 Add a enhanceTextSelection preference
#7600 Check that Type1C fonts does not actually contain OpenType font files (issue 7598)
#7546 Don't duplicate the first entry in the charCodeToGlyphId map for CIDFontType2 fonts with a CIDToGIDMap that already mapped the first entry to a non-zero glyphId (issue 7544)
#7621 Add a couple more, mostly text, reference tests for non-embedded symbolic fonts without included encoding information
#7622 Text widget annotations: implement maximum length and text alignment
#7624 Adding "proper" message port for fake worker.
#7623 Change src/core/jpx.js to use the error utility function instead of using throw new Error
#7626 Fix lint warnings in URL polyfill
#7629 Text widget annotations: implement unit testing and sanitize data values
#7634 Remove the deprecated mozDash/mozDashOffset canvas 2D context methods
#7632 [EnhanceTextSelection] Make expandTextDivs more efficient by updating all styles at once instead of piecewise
#7636 Drops unneeded HTTP refresh header for the extension.
#7550 For embedded Type1 fonts without included ToUnicode/Encoding data, attempt to improve text selection by using the builtInEncoding to amend the toUnicode map (issue 6901, issue 7182, issue 7217, bug 917796, bug 1242142)
#7633 Text widget annotations: support read-only/multiline fields and improve testing
#7645 Prevent rendering TextWidgetAnnotations in both the core/display layer (issue 7643)
#7640 Interactive forms: remove global PDFJS usage
#7642 Deduct file type from content-disposition if needed
#7639 Replace empty CharStrings with '.notdef' in Type1Font_wrap to prevent OTS from rejecting the font (bug 1252420)
#7652 Prevent errors if the 'resize' event is fired before the eventBus has been initialized
#7647 Ensure that test/driver.js actually takes the same Annotation code-path as the viewer when running forms tests (PR 7633 follow-up)
#7649 Text widget annotations: implement comb support
#7661 Respect the 'ColorTransform' entry in the image dictionary when decoding JPEG images (bug 956965, issue 6574)
#7181 Simplified wheel processing
#7653 Bug 1300878 - Add support for touch-swiping between pages in presentation mode
#7656 Attempt to skip zero bytes at the end of Scan blocks when decoding JPEG images (issue 4090)
#7618 fixing #7590 by delaying div shrink after mouse up
#7681 Add a unit-test for annotations where the URI action has an incorrect encoding (bug 1122280, PR 5999)
#7691 Version 1.6
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 →