v4.9.124
This release contains improvements for the annotation editor, form rendering, image conversion, text selection and the viewer.
Changes since v4.8.69
- Bump the stable version in
pdfjs.config
by @timvandermeij in #18994 - Update dependencies and translations to the most recent versions by @timvandermeij in #18995
- Enable the "should have an alt attribute from toolTip" unit-test in Node.js by @Snuffleupagus in #18998
- Enable the 'gets PDF filename from query string appended to "blob:" URL' unit-test in Node.js by @Snuffleupagus in #18997
- Use the
toBase64Util
helper function in the unit-tests by @Snuffleupagus in #18999 - Install and use the most recent Node types for the types tests by @timvandermeij in #19000
- Fix the "must convert input to uppercase" scripting integration test by @timvandermeij in #19001
- [api-minor] Update the minimum supported Node.js version to 20, and only support the Fetch API for "remote" PDF documents in Node.js by @Snuffleupagus in #18959
- Fix error on empty response headers by @CyberAndrii in #19010
- Try to improve handling of missing trailer dictionaries in
XRef.indexObjects
(issue 18986) by @Snuffleupagus in #19007 - Shorten a few helper functions in
src/core/core_utils.js
by @Snuffleupagus in #19005 - Add helper functions to load image blob/bitmap data in
test/unit/api_spec.js
by @Snuffleupagus in #19003 - Bump library version to
4.9
by @Snuffleupagus in #19002 - Simplify toRomanNumerals function by @calixteman in #19011
- Fix Typo:XFATemplate class Para Styling paddingight => paddingRight by @Snuffleupagus in #19012
- Set the padding of the buttons in the toolbars to zero by @calixteman in #19018
- Shorten the
Page.prototype.userUnit
getter slightly by @Snuffleupagus in #19019 - [api-minor] Replace the
canvas
package with@napi-rs/canvas
by @Snuffleupagus in #19015 - Apply gradient when stroking text by @calixteman in #19023
- Disable ref test 'issue18896' for Chrome because it takes too much time by @calixteman in #19024
- Simplify saving added/modified annotations. by @calixteman in #19026
- Migrate to ESLint flat config by @nicolo-ribaudo in #19029
- Add a
PartialEvaluator
helper for fetching CMap and Standard Font data by @Snuffleupagus in #19021 - Use Python 3.13 in the GitHub workflows by @timvandermeij in #19035
- Update dependencies and translations to the most recent versions by @timvandermeij in #19033
- [api-minor] Add a
getDocument
option to disableImageDecoder
usage by @Snuffleupagus in #19031 - Remove the
extensions/chromium/.eslintrc
file (PR 19029 follow-up) by @Snuffleupagus in #19052 - Enable the ESLint
no-var
rule in thesrc/core/evaluator.js
file by @Snuffleupagus in #19050 - Enable the ESLint
no-console
rule in parts of the code-base by @Snuffleupagus in #19042 - Avoid redundant CMap-value lookup in
extendCMap
(PR 5101 follow-up) by @Snuffleupagus in #19057 - Convert the
Dict
-implementation to use aMap
internally by @Snuffleupagus in #19051 - Improve clean-up of
#_hcmCache
-data inDOMFilterFactory.prototype.destroy
by @Snuffleupagus in #19059 - [api-minor] Disable
ImageDecoder
usage by default in Chromium browsers by @Snuffleupagus in #19045 - When saving some annotations with the same name, set the value in the parent by @calixteman in #19054
- Remove obsolete Gitpod files by @timvandermeij in #19062
- Update dependencies and translations to the most recent versions by @timvandermeij in #19061
- Update svglint to 3.1.0 by @calixteman in #18669
- Use JSON imports instead of PDFJSDev.json by @nicolo-ribaudo in #19068
- Fix the "must check that an infinite loop is not triggered" integration test by @timvandermeij in #19064
- Enable the
unicorn/no-single-promise-in-promise-methods
ESLint plugin rule by @Snuffleupagus in #19071 - Fix 'must load a SVG, delete it and undo' integration test by @calixteman in #19069
- Simplify the
getUuid
helper function by @Snuffleupagus in #19084 - Use the V entry as an option when no options in a choice widget by @calixteman in #19086
- [Editor] Simplify the draw layer code by @calixteman in #19085
- [Editor] Avoid to scroll when dragging an editor on a touch screen by @calixteman in #19087
- [Editor] Avoid to use event.movementX/Y when resizing an editor by @calixteman in #19088
- Ensure that the response-origin of range requests match the full request (issue 12744) by @Snuffleupagus in #19028
- Rescale the image data when they're really too large by @calixteman in #19095
- Fix path traversal issue in createTemporaryNodeServer by @Rob--W in #19096
- Convert the
getPdfManager
function to be asynchronous by @Snuffleupagus in #19091 - Drop trailing whitespace from test/unit/api_spec.js by @Rob--W in #19100
- Fix the highlight integration test when highlighting with the keyboard by @calixteman in #19111
- [Editor] Disallow to have multiple pointers while dragging an editor by @calixteman in #19109
- [Editor] Add a new base class to allow to add a drawing in the SVG layer. by @calixteman in #19093
- Correctly compute the mapping between text and normalized text when it contains a compound word on two lines by @calixteman in #19122
- Use the
stopEvent
helper function everywhere possible by @Snuffleupagus in #19121 - Very slightly improve the performance when searching in a pdf by @calixteman in #19123
- [Editor] Allow to abort the current drawing by @calixteman in #19129
- Fix #serializeBoxes function not output correct quadPoints values for deserialize (issue19056) by @jarklee in #19066
- Simplify the code to zoom in using a pinch gesture by @calixteman in #19124
- Build date consistently (in term of tz) when executing some embedded JS (bug 1934157) by @calixteman in #19131
- Use even more optional chaining in the
src/display/api.js
file by @Snuffleupagus in #19135 - Shorten the
WorkerMessageHandler
class a little bit by @Snuffleupagus in #19136 - Move the
getPage
call inPDFDocumentProperties
class by @Snuffleupagus in #19137 - Update dependencies and translations to the most recent versions by @timvandermeij in #19099
- Disable the browser-tests in Google Chrome on the bots by @Snuffleupagus in #19117