Skip to content

Releases: mozilla/pdf.js

v6.2.108

Choose a tag to compare

@timvandermeij timvandermeij released this 28 Jul 19:49
0365cbd

This release contains improvements for annotation rendering, annotation editing, font conversion, image conversion, performance, SMask handling and text selection.

Changes since v6.1.200

Read more

v6.1.200

Choose a tag to compare

@timvandermeij timvandermeij released this 27 Jun 16:30
6353ace

This release contains improvements for annotation rendering, annotation editing, font conversion, image conversion, merging files, SMask rendering and the viewer.

Changes since v6.0.227

Read more

v6.0.227

Choose a tag to compare

@timvandermeij timvandermeij released this 30 May 13:11
241dbab

PDF.js 6.0 is a major release that contains a number of API changes, features and bugfixes.

The complete list of changes in this release is shown below. If you're upgrading to PDF.js 6.0 we recommend checking the changes prefixed with [api-minor] and [api-major] since those might require updates to your code.

Changes since v5.7.284

Read more

v5.7.284

Choose a tag to compare

@timvandermeij timvandermeij released this 27 Apr 19:23
7e5b36c

This release contains improvements for accessibility, annotations, the annotation editor, font conversion, image conversion, performance, shading pattern rendering, SMask rendering and the viewer.

Changes since v5.6.205

Read more

v5.6.205

Choose a tag to compare

@timvandermeij timvandermeij released this 29 Mar 18:42
ada3438

This release contains improvements for accessibility, annotation rendering, font conversion, performance, shading pattern rendering, text selection and the viewer.

Changes since v5.5.207

Read more

v5.5.207

Choose a tag to compare

@timvandermeij timvandermeij released this 01 Mar 20:22
5279646

This release contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.

Changes since v5.4.624

  • Bump the stable version in pdfjs.config by @timvandermeij in #20617
  • Replace the various interfaces in web/interfaces.js with proper classes by @Snuffleupagus in #20607
  • Add support for Brotli decompression by @calixteman in #20610
  • Change all relevant BasePDFStream implementations to take an actual URL instance by @Snuffleupagus in #20614
  • Report loading progress "automatically" when using the PDFDataTransportStream class, and remove the PDFDataRangeTransport.prototype.onDataProgress method by @Snuffleupagus in #20615
  • Use the ccittfax decoder from pdfium by @calixteman in #20613
  • Avoid to have to download the model when toggling the button in the alt-text image settings dialog (bug 2013899) by @calixteman in #20621
  • Let the toggle button in the alt-text dialog downloading (resp. delete) the model and enabling (resp. disabling) alt-text guessing (bug 2014167) by @calixteman in #20622
  • Flush the text content chunk only on real font changes (bug 2013793) by @calixteman in #20624
  • Improve progress reporting in ChunkedStreamManager, and prevent unnecessary data copy in ChunkedStream.prototype.onReceiveData by @Snuffleupagus in #20627
  • Cap the max canvas dimensions in order to avoid to downscale large images in the worker (bug 2014399) by @calixteman in #20628
  • Fix Worker was terminated error when loading is cancelled by @andriivitiv in #20503
  • In tagged pdfs, TH can be either a column header or a row header (bug 2014080) by @calixteman in #20623
  • [api-minor] Update the supported Node.js "patch" versions by @Snuffleupagus in #20635
  • Ensure that pending requests are resolved when calling PDFDataTransportStreamReader.prototype.progressiveDone by @Snuffleupagus in #20634
  • Normalize the font name in getBaseFontMetrics (issue 20246) by @Snuffleupagus in #20637
  • Avoid branching in convertBlackAndWhiteToRGBA by @calixteman in #20638
  • Set a pages mapper per loaded document by @calixteman in #20640
  • Bump library version to 5.5 by @Snuffleupagus in #20642
  • [api-minor] Update the minimum supported Google Chrome version to 118 by @Snuffleupagus in #20645
  • Update dependencies and translations to the most recent versions by @timvandermeij in #20639
  • Fix a 'FreeText accessibility' integration test by @calixteman in #20643
  • Add firefox-devtools-mcp to let AI agents test and debug in Firefox by @marco-c in #20644
  • Convert PDFPageProxy.prototype.getTextContent to an asynchronous method by @Snuffleupagus in #20648
  • Ends the current drawing session when closing the tab (bug 2015385) by @calixteman in #20649
  • Start using Response.prototype.bytes() in the code-base by @Snuffleupagus in #20651
  • Move and re-use the stripPath helper function more by @Snuffleupagus in #20656
  • Update jbig2 decoder (pdfium@0455e822ded1a5537d826703988e986a33d2d4a1) by @calixteman in #20655
  • Enable a couple of additional eslint-plugin-unicorn rules by @Snuffleupagus in #20654
  • Fix types to make "gulp typestest" succeeding by @calixteman in #20641
  • Avoid parsing skipped range requests in ChunkedStreamManager (PR 10694 follow-up) by @Snuffleupagus in #20652
  • Enable the unicorn/prefer-class-fields ESLint plugin rule by @Snuffleupagus in #20657
  • Add code coverage for unit tests running in node by @calixteman in #20658
  • Add a Codecov badge by @calixteman in #20659
  • Remove Object.hasOwn usage from the src/core/xref.js file by @Snuffleupagus in #20663
  • Truncate too long /Decode map entries (issue 20668) by @Snuffleupagus in #20669
  • Convert the PDFObjects class to use a Map internally by @Snuffleupagus in #20673
  • Fix the keyboard accessibility of the manage button in the thumbnails view (bug 2015916) by @calixteman in #20675
  • fix: support text selection under search highlights by @matt-atticus in #20463
  • Fix code coverage line mapping by @calixteman in #20665
  • Remove unused CanvasGraphics properties (PR 700 follow-up) by @Snuffleupagus in #20682
  • Add an aria-label to the checkboxes in the thumbnails view (bug 2016136) by @calixteman in #20678
  • Correctly handle tab/page down when on a menu (bug 2016212) by @calixteman in #20681
  • Add an aria-label to the sidebar resizer (bug 2016142) by @calixteman in #20679
  • Add support for deleting, cutting, copying and pasting pages (bug 2010830, 2010831) by @calixteman in #20670
  • Add the possibility to navigate with the keyboard to go from a checkbox to an other in the thumbnail view (bug 2016007) by @calixteman in #20677
  • Set the annotationType automatically in the Annotation constructor by @Snuffleupagus in #20685
  • Update dependencies and translations to the most recent versions, and upgrade most packages to new major versions by @timvandermeij in #20661
  • Remove unnecessary class constructors in the src folder by @Snuffleupagus in #20684
  • Remove unnecessary Map.prototype.entries() usage by @Snuffleupagus in #20691
  • Fix the color of the arrow on buttons when hovering in HCM (bug 2016311) by @calixteman in #20686
  • Replace the getStatIndex helper, in web/debugger.mjs, with native functionality by @Snuffleupagus in #20692
  • Fix the menu dimensions when on of the item is too long (bug 2018134) by @calixteman in #20694
  • Fix the style of the thumbnails in HCM (bug 2016491, bug 2016321, bug 2016323, bug 2016827) by @calixteman in #20693
  • Convert ChunkedStreamManager.prototype.sendRequest to an asynchronous method by @Snuffleupagus in #20660
  • Update the page count in the UI when some changes are done (bug 2018125) by @calixteman in #20695
  • Reduce duplication when parsing searchParams in the getPdfFilenameFromUrl function by @Snuffleupagus in #20690
  • Add code coverage for font tests by @calixteman in #20688
  • Add some unit tests for functions in image_utils.js by @calixteman in #20698
  • Update quickjs to fa628f8c523ecac8ce560c081411e91fcaba2d20 by @calixteman in #20708
  • Slightly shorten some code in the src/scripting_api/ folder by @Snuffleupagus in #20699
  • Only show the status bar in the views manager when it's in thumbnails mode (bug 2016656) by @calixteman in #20696
  • Use Map.prototype.getOrInsert() in the getNewAnnotationsMap helper by @Snuffleupagus in #20702
  • Use Map.prototype.getOrInsert() in the _getPageAdvance method by @Snuffleupagus in #20704
  • Use Map.prototype.getOrInsertComputed() in the ensureDebugMetadata helper by @Snuffleupagus in #20706
  • Use Map.prototype.getOrInsert() in the #collectFieldObjects method by @Snuffleupagus in #20703
  • Use Map.prototype.getOrInsert() in the #collectParents method by @Snuffleupagus in #20705
  • Remove the leading slash in windows file path when instrumenting js files for ccov by @calixteman in #20710
  • Use FinalizationRegistry unconditionally in the src/scripting_api/app.js file by @Snuffleupagus in #20709
  • Use Map.prototype.getOrInsertComputed() in the editorStats getter by @Snuffleupagus in #20711
  • Use Map.prototype.getOrInsert() more in the src/display/ folder by @Snuffleupagus in #20716
  • Correctly generate the NormalizeWithNFKC string in generic build...
Read more

v5.4.624

Choose a tag to compare

@timvandermeij timvandermeij released this 01 Feb 19:17
384c620

This release contains improvements for accessibility, the annotation editor, image decoding, performance and the viewer.

Changes since v5.4.530

  • Bump the stable version in pdfjs.config by @timvandermeij in #20540
  • Get glyph contours when stroking using a pattern by @calixteman in #20515
  • Use the PDFium JBig2 decoder compiled into wasm by @calixteman in #20546
  • Update dependencies and translations to the most recent versions by @timvandermeij in #20547
  • Fix wasm url issue for the jbig2 decoder by @calixteman in #20548
  • Revert "Remove some files from talos tests because they aren't available on webarchive" by @timvandermeij in #20549
  • Aria-hide artifacts in the text layer (bug 2004951) by @calixteman in #20550
  • Don't add an aria-label on MathML elements in the struct tree (bug 2004951) by @calixteman in #20551
  • Add some tests for the JBIG2 js decoder by @calixteman in #20552
  • Update jbig2 decoder (pdfium@3c679253a9e17c10be696d345c63636b18b7f925) by @calixteman in #20566
  • Don't use contents stream which have an image format by @calixteman in #20570
  • Hide the text in the text layer associated with MathML elements (bug 2009627) by @calixteman in #20567
  • Make sure the caret is black in dark mode when in caret browsing mode by @calixteman in #20569
  • Add the possibility to drag & drop some thumbnails in the pages view (bug 2009573) by @calixteman in #20559
  • Select the dropped thumbnail (bug 2010820) by @calixteman in #20578
  • The 'find in page' feature must correctly work after the pages have been reorganized (bug 2010814) by @calixteman in #20577
  • Avoid exception after having moved an annotation by @calixteman in #20572
  • Add the possibility to order the pages in an extracted pdf (bug 1997379) by @calixteman in #20475
  • Bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #20588
  • Update image pattern in gulpfile to accommodate missing images by @dgiessing in #20554
  • Hide the menu container in changing it's visibility by @calixteman in #20583
  • Fix links and outline after reorganizing a pdf by @calixteman in #20580
  • Use DecompressionStream in async code by @calixteman in #20593
  • Fix the drag marker dimensions in the thumbnails view by @calixteman in #20591
  • Bug 1999154 - Add the ability to undo comment deletion by @marco-c in #20586
  • Refactor a bit page mapping stuff in order to be able to support delete/copy pages by @calixteman in #20587
  • Add a manage button in the thumbnail view in order to save an edited pdf (bug 2010830) by @calixteman in #20582
  • Fix the sidebar resizer accessibility by @calixteman in #20598
  • [Node.js] Don't abort the full request for local PDF files smaller than two range requests, and use standard ReadableStreams by @Snuffleupagus in #20594
  • Simplify the NetworkManager class, and inline it in the PDFNetworkStream class by @Snuffleupagus in #20595
  • Simplify the FileSpec class, and remove no longer needed polyfills by @Snuffleupagus in #20596
  • Remove unit-tests for global ReadableStream and URL by @Snuffleupagus in #20605
  • Improve preferences building, and generate the preferences_schema.json file for the Chromium addon by @Snuffleupagus in #20603
  • Replace the IPDFStream, IPDFStreamReader, and IPDFStreamRangeReader interfaces with proper base classes by @Snuffleupagus in #20602
  • fix: Fix mailto links truncated at dash by @kairosci in #20565

v5.4.530

Choose a tag to compare

@timvandermeij timvandermeij released this 28 Dec 19:00
50cc4ad

This release, the final one of 2025, contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.

Changes since v5.4.449

v5.4.449

Choose a tag to compare

@timvandermeij timvandermeij released this 29 Nov 14:52
f44e5f0

This release contains improvements for the annotation editor, performance, text selection and the viewer.

Changes since v5.4.394

v5.4.394

Choose a tag to compare

@timvandermeij timvandermeij released this 02 Nov 12:07
2cc809a

This release contains improvements for the annotation editor, accessibility, font conversion and performance.

Changes since v5.4.296

  • Bump the stable version in pdfjs.config by @timvandermeij in #20339
  • Update dependencies and translations to the most recent versions by @timvandermeij in #20337
  • [Editor] Remove obsolete arguments for setDims calls in the highlight code by @timvandermeij in #20335
  • Add a test for PR #20320 by @calixteman in #20338
  • [Editor] Make sure that comment stuff is removed when an editor is deleted (bug 1992987) by @calixteman in #20342
  • [Editor] Make sure the editor is focused after the comment has been deleted (bug 1992832) by @calixteman in #20343
  • [Editor] Make sure all editors are focusable with the keyboard (bug 1992868) by @calixteman in #20341
  • [Editor] Remove the role radio for the editing buttons (bug 1990826) by @calixteman in #20347
  • [Editor] Make sure that annotation positions in the DOM respect the visual order (bug 1992770) by @calixteman in #20344
  • [Annotation] Use the annotations rect in order to fix the order in the DOM (bug 1987914) by @calixteman in #20350
  • [Editor] Avoid to have a null button in the DOM when there's no comment manager by @calixteman in #20351
  • Improve performance of the struct tree build (bug 1987914) by @calixteman in #20352
  • [Annotation] Improve the performance of the code for getting glyphs which belongs to annotations bounding boxes (bug 1987914) by @calixteman in #20353
  • Use enums instead of string for mesh shading figure type by @Aditi-1400 in #20354
  • Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #20357
  • Very slightly improve intersector performance by @calixteman in #20358
  • Use Python 3.14 in the GitHub workflows by @timvandermeij in #20363
  • Update dependencies and translations to the most recent versions by @timvandermeij in #20356
  • Reset sameLineText dependencies data on setTextMatrix by @nicolo-ribaudo in #20361
  • Use a binary format for the glyph paths by @calixteman in #20367
  • [Editor] Correctly focus the annotation once the comment has been removed in the annotation layer (bug 1994738) by @calixteman in #20369
  • [Editor] Fix the tooltip of the comment button when in the editor toolbar (bug 1994958) by @calixteman in #20372
  • [Editor] FreeText annotations aren't supposed to have an attached popup so disable commenting for them (bug 1995028) by @calixteman in #20374
  • [Editor] Make sure the color picker has the right color when pasting an editor by @calixteman in #20375
  • [Editor] Fix integration test after #20372 by @calixteman in #20377
  • Use stream for whatever substrem in stream classes by @calixteman in #20373
  • Fix stream use when getting the text (follow-up of #20373) by @calixteman in #20379
  • Add a highlightSpan function in order to simplify a bit the integration tests by @calixteman in #20355
  • Tweak the "scroll into view" viewer integration test by @timvandermeij in #20380
  • Don't use the aboutstacks.pdf file in the integration tests by @timvandermeij in #20378
  • Bump actions/setup-node from 5 to 6 by @dependabot[bot] in #20381
  • Serialize pattern data into ArrayBuffer by @Aditi-1400 in #20340
  • [Editor] Fix the css of the button to close the comment sidebar (bug 1995766) by @calixteman in #20386
  • [Editor] Fix the css of the link in the comment sidebar (bug 1995721) by @calixteman in #20387
  • [Editor] Avoid to have several Undo entries in the context menu (bug 1995705) by @calixteman in #20388
  • [Editor] Make sure the left (resp. right) corner of the popup is visible when in LTR (resp. RTL) (bug 1995579) by @calixteman in #20389
  • Make MathML elements visible in the struct tree (bug 1937438) by @calixteman in #20384
  • Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #20400
  • Update dependencies and translations to the most recent versions by @timvandermeij in #20396
  • Add the font PT Astra Serif as a possible substitution for Times New Roman by @CoelacanthusHex in #20394
  • Collect all child nodes of lists and tables in StructTree by @edoardocavazza in #20327
  • Add text extractor as an external service by @gregtatum in #20406
  • Revert "Add some telemetry in order to know what are the certificates used in pdfs (bug 1973573)" by @calixteman in #20404
  • Don't set the MathML namespace for attributes in MathML tags (bug 1997343) by @calixteman in #20408
  • [Editor] A new CurrentPointers class to store current pointers used by the editor by @legraina in #20213