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
Changes: #8778 Use Uint8ClampedArray, when returning data, and remove manual clamping in src/core/jpg.js (issue 4901) #8780 Version 1.9.426 #8783 Use
Changes:
#8778 Use Uint8ClampedArray, when returning data, and remove manual clamping in src/core/jpg.js (issue 4901)
#8780 Version 1.9.426
#8783 Use Uint8ClampedArray when returning image data in src/core/jbig2.js and src/core/jpg.js
#8785 SVG: Don't render missing glyphs
#8788 Attempt to delay disabling of the attachment view until FileAttachment annotations of the initial page has been parsed
#8792 Fix caching of small inline images in Parser.makeInlineImage (issue 8790)
#8794 Remove the migration code for old localStorage data in ViewHistory
#8557 pdf2svg.js: provides ReadableSVGStream class to serialize a SVG as a stream
#8781 __non_webpack_require__ -> require in SystemJS
#8491 JBIG2 halftone regions and pattern dictionaries
#8807 Remove handling of fallback arguments from PDFViewer.scrollPageIntoView
#8812 Moves global scope out of shared/util.
#8813 Use Array.isArray in the LoopbackPort.
#8810 Cache PdfJs's enabled setting for delayed init
#8800 Try to recover if we reach the end of the stream when searching for the EI marker of an inline image (issue 8798)
#8712 Adds node.js logic for networking tasks for PDF.js
#8822 Disable node libs in pdfjs-dist package.json
#8824 Prevent an infinite loop in XRef.readXRef by keeping track of already parsed tables (bug 1393476)
#8819 Remove any mention of compatibility.js from the "Getting Started" docs (issue 8818)
#8817 Set this.isCancelled in close method of streamSink.
#8820 Remove the ability to pass a scale parameter in the (optional) args object parameter of PDFViewerApplication.open(file, args)
#8821 Replace the test-case for issue 8798 with a reduced one (PR 8800 follow-up)
#8826 Enable the for-direction ESLint rule
#8825 Account for broken outlines/annotations, where the destination dictionary contains an invalid /Dest entry
#8796 Implement text rise for the SVG back-end
#8829 Attempt to improve the EI detection heuristics, for inline images, in streams containing NUL bytes (issue 8823)
#8831 Update the gulp minified command to use uglify-es
#8835 Ensure that PDFViewerApplication.error outputs proper messages in FIREFOX/MOZCENTRAL builds
#8768 Adds fetch stream logic for networking part of PDF.js
#8845 Fixes autofetch and firefox nightly fetch streams
#8828 Improve the annotation code by converting to ES6 syntax and removing duplicate code
#8848 Correctly set the credentials of a fetch request, when the withCredentials parameter was passed to getDocument
#8855 Add test for withCredentials option
#8847 Correct the default value for isRenderable in the AnnotationElement constructor, to fix breaking errors when rendering unsupported annotations
#8857 Avoid some redundant type checks in XRef.fetchUncompressed
#8859 Revert PDFPageView.pdfPage reset.
#8862 Replace the isInt helper function with the native Number.isInteger function
#8864 Replace the isArray helper function with the native Array.isArray function
#8775 Re-write PDFHistory from scratch
#8874 Fix the helloworld example by setting the PDFNetworkStream class (PR 8712 follow-up)
#8866 Correctly validate the response status for non-HTTP fetch requests (PR 8768 follow-up)
#8877 Provide checked styles for button widget annotations
#8885 Address a couple of edge-cases in the new PDFHistory implementation (PR 8775 follow-up)
#8889 Replace value === (value | 0) checks with Number.isInteger(value)
#8868 Store the rotation in the ViewHistory/PDFHistory (issue 5927)
#8865 Hide unsupported LinkAnnotations (issue 3897)
#8691 Implement support for square and circle annotations
#8892 Replace var with let in web/genericcom and web/genericl10n
#8891 ES6-ify the code in web/firefoxcom.js
#8893 Combine the common styles and overrides for the annotation layer reference tests
#8808 Fix color of image masks inside uncolored patterns
#8904 Provide a stub for setAttribute in order to use the SVG back-end with Node.js
#8900 Use the SimpleLinkService when running "annotations" reference tests
#8910 Fix #8888: Change behaviour of fetch to make it compatible with XHR.
#8913 For /Filter entries containing Names, ignore the /DecodeParms entry if it contains an Array (issue 8895)
#8909 Check isEvalSupported, and test that eval is actually supported, before attempting to use the PostScriptCompiler (issue 5573)
#8917 Implement support for stamp annotations
#8919 Ignore 'change' events that didn't originate in the viewer (issue 8915)
#8921 support tiff predictor for 16bit
#8901 CCITTFaxStream problem when EndOfBlock is false
#8938 Use font's default width even when 0. (bug 1392647)
#8912 [api-minor] Replace DOMParser with SimpleXMLParser
#8928 Fix #8907: Decode URL to get correct path in node_stream.
#8949 Remove the instanceof AlternateCS check in ColorSpace.parse since it's dead code
#8932 JBIG2 symbol offsets
#8950 Implement support for polyline and polygon annotations
#8724 Implement a PDFSinglePageViewer class (issue 8188)
#8955 Overwrite maxSizeOfInstructions in maxp with computed value.
#8959 Ensure that the same exact version of PDF.js is used in both the API and the Worker
#8962 Check that this.baseUrl is defined before attempting to fetch any data in DOMCMapReaderFactory/NodeCMapReaderFactory
#8968 Split the existing PDFFunction in two classes, a private PDFFunction and a public PDFFunctionFactory, and utilize the latter in PDFDocument to allow various code to access the methods of PDFFunction
#8976 Simplify the disabling of Node polyfills, in gulpfile.js, since we're now using Webpack 3.x
#8971 Closes all promises/streams when handler is destroyed.
#8979 Transform Web Archive URLs to avoid downloading an HTML page instead of the PDF file
#8977 Update all packages to the most recent version
#8981 Update translations
#8983 Remove unused helper code
#8980 Add CDN links
#8990 Added component example for single page viewer
#8994 Fix a regression that (effectively) makes PDFHistory.forward a no-op
#9002 Revert "Closes all promises/streams when handler is destroyed."
#9001 Prevent the annotationLayer from, in some cases, becoming duplicated on the first page when the document loads
#8922 Allow getOperatorList/getTextContent to skip errors when parsing broken XObjects (issue 8702, issue 8704)
#9008 Mispelled isEvalSupported property at FontFaceObject() creation.
#9009 Only warn about unsupported JavaScript, in the viewer, when non-empty actions exist (issue 5767)
#9013 Fix a PDFHistory regression with document hashes of the nameddest=... form
#9027 Replace our WeakMap polyfill with the one from core-js
#9029 Enable the --report-unused-disable-directives ESLint command line option
#9031 Remove all warning/fallback code for obsolete method signatures in web/ files
#9040 Remove the enableHandToolOnLoad preference migration code in web/pdf_cursor_tools.js
JavaScript exists
#9044 Use charstring as plain text when lengthIV is -1.
#9032 Simplify the check, and remove the warning, for the nativeImageDecoderSupport API parameter
#9052 Attempt to clarify the meaning of "extension" in the ISSUE_TEMPLATE
#9054 Replace our Promise polyfill with the one from core-js
#9055 Replace Number polyfills with the ones from core-js
#9058 Replace a few occurences of var with let in already ES6 converted web/ files
#9057 Use let/const instead of var in the printing code
#9061 Adds ECCN response statement
#8986 Version 1.10
#9045 Sanitize name index in compile phase of CFF.
#9046 Extract the actual decoding in CCITTFaxStream into a new CCITTFaxDecoder "class", which the new CCITTFaxStream depends on
#9072 Use stringToBytes in more places
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
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →