This release contains improvements for performance, image rendering, text selection, annotation editing, accessibility, handling of corrupted documents, integration with third-party frameworks (see #17245) and the viewer.
Changes since v4.2.67
- Bump the stable version in
pdfjs.config
by @timvandermeij in #18023 - Update dependencies and translations to the most recent versions by @timvandermeij in #18024
- Fix rendering problem when zooming on Safari by @Aditi-1400 in #18019
- [api-minor] Remove the use of (get/put)ImageData when drawing SMasks (bug 1874013) by @calixteman in #18029
- [api-minor] Expose the /Desc-attribute of file attachments in the viewer (issue 18030) by @Snuffleupagus in #18031
- Remove the limit used to decided if a group canvas must be upscaled or not by @calixteman in #18035
- Bump library version to
4.3
by @Snuffleupagus in #18033 - Add even more validation of width-data (PR 18017 follow-up) by @Snuffleupagus in #18037
- [api-minor] Improve the
FileSpec
implementation by @Snuffleupagus in #18034 - Pin GitHub actions to Node.js 21 by @nicolo-ribaudo in #18009
- Avoid to aria-hide the structure tree (bug 1894849) by @calixteman in #18044
- Remove most
waitForTimeout
usage from the freetext editor integration tests by @timvandermeij in #18041 - Validate even more dictionary properties by @Snuffleupagus in #18026
- Remove event listeners with
signal
in web/pdf_viewer.js by @Snuffleupagus in #18055 - Remove the unused
Font.prototype.spaceWidth
getter (PR 13424 follow-up) by @Snuffleupagus in #18069 - Revert "Fix rendering problem when zooming on Safari" for causing bug 1895909 by @Snuffleupagus in #18079
- Slightly re-factor how the viewer initializes debug-only functionality by @Snuffleupagus in #18061
- Remove the
ignoreErrors
option from theFontFaceObject
class by @Snuffleupagus in #18066 - [api-minor] Re-factor how Node.js packages/polyfills are loaded (issue 17245) by @Snuffleupagus in #18051
- Restore broken functionality and simplify the implementation in
src/display/text_layer.js
by @Snuffleupagus in #18052 - Update the Babel plugin to remove empty class constructors by @nicolo-ribaudo in #18060
- [api-minor] Include the document /Lang attribute in the textContent-data by @Snuffleupagus in #17941
- [Editor] Fix the CSS properties of the canvas when it's used in a stampEditor (bug 1895909) by @calixteman in #18080
- Fix flickering on text selection by @nicolo-ribaudo in #17923
- Improve the
TextLayerRenderTask
implementation by @Snuffleupagus in #18089 - Update openjpeg build (bug 1896577) by @calixteman in #18087
- Update dependencies and translations to the most recent versions by @timvandermeij in #18092
- Inline the
_fetchDocument
helper function ingetDocument
by @Snuffleupagus in #18091 - Implement a unit test for the
BaseException
class by @timvandermeij in #18093 - Remove unnecessary
signal
parameter fromremoveEventListener
calls by @Snuffleupagus in #18094 - Avoid re-parsing global images that failed decoding (issue 18042, PR 17428 follow-up) by @Snuffleupagus in #18047
- Actually disable
TextLayerRenderTask.prototype.#processItems
whenMAX_TEXT_DIVS_TO_RENDER
is reached (PR 18089 follow-up) by @Snuffleupagus in #18103 - [api-minor] Respect the
drawingDelay
also when CSS-only zooming is used (issue 18022) by @Snuffleupagus in #18077 - Remove the
rimraf
dependency in favor of the built-in Node.jsfs.rmSync
by @timvandermeij in #18106 - Remove the obsolete
needle
dependency by @timvandermeij in #18107 - Don't invoke
cleanupTextLayer
when there are pending textLayers by @Snuffleupagus in #18109 - Support charCodes larger than 32-bit in
adjustMapping
(issue 18117) by @Snuffleupagus in #18119 - Freeze
evaluatorOptions
in the src/core/pdf_manager.js file by @Snuffleupagus in #18115 - [api-minor] Re-factor the basic textLayer-functionality by @Snuffleupagus in #18104
- Remove the
through2
dependency in favor of the built-in Node.jsstream.Transform
by @timvandermeij in #18113 - Update puppeteer to 22.9.0 by @calixteman in #18121
- Support corrupt PDF documents that contain "endsteam" commands (issue 18122) by @Snuffleupagus in #18125
- [Editor] Update popup position and contents after a FreeText has been edited by @calixteman in #17968
- [Editor] Pass a buffer instead of a blob url to the ML api by @calixteman in #18136
- Add test for drawing delay with CSS-only zoom by @nicolo-ribaudo in #18129
- Remove most
waitForTimeout
usage from the scripting integration tests by @timvandermeij in #17974 - Add language attribute to canvas by @Aditi-1400 in #17770
- Improve /Page validation for linearized documents (issue 18138) by @Snuffleupagus in #18143
- Remove the
merge-stream
dependency in favor of theordered-read-streams
dependency by @timvandermeij in #18145 - Shorten the code in the
web/text_layer_builder.js
file by @Snuffleupagus in #18152 - Update dependencies and translations to the most recent versions by @timvandermeij in #18153
- Introduce a
getRect
utility function for the integration tests by @timvandermeij in #18154 - [GeckoView] Don't use the system fonts (bug 1882613) by @calixteman in #18156
- Prevent XRef errors from breaking font loading (bug 1898802) by @Snuffleupagus in #18166
- Update the "File Layout Overview" docs by @Snuffleupagus in #18160
- Improve the
loadingParams
functionality in the API by @Snuffleupagus in #18159 - Simplify the integration test in adding a function to turn on/off an editing tool by @calixteman in #18165
- Move the dialog css stuff in its own file by @calixteman in #18174
- Target ES2022 when building the TypeScript definitions (issue 17932) by @Snuffleupagus in #18161
- Slightly shorten some worker-thread code by @Snuffleupagus in #18169
- Don't register a pending
TextLayer
untilrender
is invoked (PR 18104 follow-up) by @Snuffleupagus in #18171 - [api-minor] Remove the
setTextContentSource
method inTextLayerBuilder
(PR 18104 follow-up) by @Snuffleupagus in #18170 - [api-minor] Simplify API to implement zoom in custom viewers by @nicolo-ribaudo in #18179