Releases: mozilla/pdf.js
v5.4.624
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.configby @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
NetworkManagerclass, and inline it in thePDFNetworkStreamclass by @Snuffleupagus in #20595 - Simplify the
FileSpecclass, and remove no longer needed polyfills by @Snuffleupagus in #20596 - Remove unit-tests for global
ReadableStreamandURLby @Snuffleupagus in #20605 - Improve preferences building, and generate the
preferences_schema.jsonfile for the Chromium addon by @Snuffleupagus in #20603 - Replace the
IPDFStream,IPDFStreamReader, andIPDFStreamRangeReaderinterfaces with proper base classes by @Snuffleupagus in #20602 - fix: Fix mailto links truncated at dash by @kairosci in #20565
v5.4.530
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
- Bump the stable version in
pdfjs.configby @timvandermeij in #20469 - [Editor] Pointer type initialization only when the user changes the mode by @legraina in #20226
- Update dependencies and translations to the most recent versions by @timvandermeij in #20470
- Aria-hide the text content part of a MathML formula (bug 1998046) by @calixteman in #20471
- Inject the text from the text layer in the MathML tags when they're in the struct tree (bug 1998046) by @calixteman in #20472
- Add a menu class in order to be used in the new UI for the merge feature by @calixteman in #20483
- Add some callbacks when resizing a sidebar by @calixteman in #20474
- Use HTMLElement.scrollIntoView when showing a thumbnail by @calixteman in #20476
- Extend getGlyphMapForStandardFonts with some Russian entries (issue 20453) by @xiaobai2017666 in #20454
- Add a new linting task in order to detect unused/unknown css variables in the Firefox build by @calixteman in #20485
- Add .vscode to .gitignore by @calixteman in #20490
- Encode FontPath data into an ArrayBuffer by @ryzokuken in #20346
- Move the css for tree object in its own file by @calixteman in #20493
- Use only one resize observer in the the sidebar by @calixteman in #20494
- Fix infinite loop in JBIG2 decoder with >4 referred-to segments by @Gaurang-5 in #20440
- Move text layer scaling logic to CSS by @nicolo-ribaudo in #20491
- Improves text rendering performance by skipping unnecessary pattern calculations by @AtiX in #20499
- Simplify positioning of elements inside
markedContentby @nicolo-ribaudo in #20492 - Fix #20420: Prevent double decoding of file URL parameter by @Uzair-Ahmed-Shah in #20482
- Fix the position of the checkmark when the menu is displayed in RTL by @calixteman in #20500
- Fix some css in the tree view by @calixteman in #20508
- Change the sidebar for a views manager by @calixteman in #20495
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #20507
- Run the CI tests in Node.js version 25 too by @timvandermeij in #20502
- Fix unit tests in adding a comma in the JSON for imports by @calixteman in #20517
- Update dependencies and translations to the most recent versions by @timvandermeij in #20501
- Escape punctuation signs in search query by @calixteman in #20518
- Avoid exception when trying to render some glyphs contours by @calixteman in #20514
- Simplify regex escaping by @calixteman in #20524
- Dont' throw when adding page labels in thumbnails by @calixteman in #20521
- Fix the encoding for some missing chinese fonts by @calixteman in #20526
- Remove some files from talos tests because they aren't available on webarchive by @calixteman in #20527
- Avoid pattern creation with some basic gradients by @calixteman in #20525
- Introduce a helper function to draw a line in the ink editor integration tests by @timvandermeij in #20519
- Add CLAUDE.md generated with claude code by @calixteman in #20522
- Avoid to have a mail link with string having the format [email protected] by @calixteman in #20531
- Remove undefStack stuff in the cff parser by @calixteman in #20537
- Fix the loca table length when there is enough space for it by @calixteman in #20538
- Use CIDToGIDMap when the font is a type 2 with an OpenType font by @calixteman in #20535
v5.4.449
This release contains improvements for the annotation editor, performance, text selection and the viewer.
Changes since v5.4.394
- Bump the stable version in
pdfjs.configby @timvandermeij in #20414 - Create the number tree for the ParentTree only one time by @calixteman in #20425
- Add the possibility to create a pdf from different ones (bug 1997379) by @calixteman in #20409
- Update the page labels tree when a pdf is extracted (bug 1997379) by @calixteman in #20411
- Update the named page destinations when some pdf are combined (bug 1997379) by @calixteman in #20421
- Version entry in the catalog has to be a name and not a string by @calixteman in #20432
- Add a wrapper for the new xref in order to be able to get some values from cloned dictionaries by @calixteman in #20431
- Update dependencies and translations to the most recent versions by @timvandermeij in #20429
- Introduce a helper function to create a freetext editor in the integration tests by @timvandermeij in #20430
- Add telemetry for tagged pdfs (bug 1997134) by @calixteman in #20405
- Merge the structure trees coming from different pdfs (bug 1997379) by @calixteman in #20436
- Add regression test for PR 19184 by @maettuu in #20151
- Bump glob by @dependabot[bot] in #20448
- Bump js-yaml from 3.14.1 to 3.14.2 by @dependabot[bot] in #20449
- Lint and format the HTML in using Prettier by @calixteman in #20447
- Add setter for some FontFaceObject properties by @Aditi-1400 in #20427
- fix: deleteAnnotationElement takes a full editor object by @sachiniyer in #20413
- When searching for a group of punctuation signs, only add extraspaces around the group by @calixteman in #20456
- [XFA] Set default max value in occur tag to -1 (bug 1998843) by @calixteman in #20455
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #20459
- Include missing
cached-iterabledev dependency inpackage.jsonby @Mario34 in #20450 - Don't use firstChild/lastChild when getting elements (follow-up of #20447) by @calixteman in #20458
- [Editor] Allow to save an edited comment in using CTRL+Enter shortcut. by @calixteman in #20460
- Create a sidebar object by @calixteman in #20467
- Fix the regex string used to find the chars to normalize with NFKC when searching by @calixteman in #20465
- Use OIDC trusted publishing in the GitHub Actions release workflow by @timvandermeij in #20468
- Slightly reduce the memory used by thumbnails by @calixteman in #20462
v5.4.394
This release contains improvements for the annotation editor, accessibility, font conversion and performance.
Changes since v5.4.296
- Bump the stable version in
pdfjs.configby @timvandermeij in #20339 - Update dependencies and translations to the most recent versions by @timvandermeij in #20337
- [Editor] Remove obsolete arguments for
setDimscalls 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
sameLineTextdependencies data onsetTextMatrixby @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.pdffile 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
v5.4.296
This release contains improvements for annotations, the annotation editor, font conversion, text selection and the viewer.
Changes since v5.4.149
- Bump the stable version in
pdfjs.configby @timvandermeij in #20215 - Update dependencies and translations to the most recent versions by @timvandermeij in #20216
- Add a function changeLightness in order to change the lightness of a RGB color by @calixteman in #20204
- [Editor] Hide the comment sidebar on document change by @timvandermeij in #20220
- [Editor] Add editors with a comment in the sidebar by @calixteman in #20217
- [Editor] Make scrollable the area containing the comments in the sidebar by @calixteman in #20222
- [Editor] Use the color of the annotation for the background of the comment button by @calixteman in #20221
- [Editor] Don't save the image when updating a stamp annotation by @calixteman in #20233
- Add a new function renderRichText to be used in the annotation layer by @calixteman in #20231
- Fix the rendering of XFA rich text in popup annotations by @timvandermeij in #20238
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #20242
- Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #20243
- Improve the integration test code by @timvandermeij in #20172
- [Editor] Fix saving a deleted popup by @calixteman in #20244
- [Editor] Add the dates and rich text if any to the editors in order to use them when displaying the popup by @calixteman in #20245
- Unskip the
must check that date entered by the user is consistentscripting integration test for Firefox by @timvandermeij in #20239 - [Editor] Make sure the comment button is at the right place when adding it in the toolbar by @calixteman in #20248
- [Editor] When clicking on a comment in the sidebar, wait for the annotation editor layer to be rendered by @calixteman in #20247
- Reduce background canvas resolution by @nicolo-ribaudo in #20255
- Add an option in scrollIntoView and goToXY in order to be able to center vertically or horizontally the point XY in the viewer container by @calixteman in #20253
- [Editor] Don't throw when switching to editing mode before an annotation editor layer is rendered by @calixteman in #20259
- [Editor] Cleanup the pages not being fully rendered before switching to editing mode by @calixteman in #20258
- Make sure that a good constrast ratio is respected when darkening/lightening a color by @calixteman in #20240
- Store ops bboxes in a linear Uint8Array by @nicolo-ribaudo in #20208
- Fix JSDoc description in src/display/api.js by @nicolo-ribaudo in #20267
- Only record bboxes when needed by @nicolo-ribaudo in #20256
- Use a dichotomy to find a color with a good contrast ratio by @calixteman in #20269
- Replace manual returns with
pendingin the integration tests by @timvandermeij in #20271 - Consider a ttf font with both Symbolic and Nonsymbolic flags set with a Differences array in the encoding dict as non-symbolic by @calixteman in #20270
- Update dependencies and translations to the most recent versions by @timvandermeij in #20272
- [Editor] Add a new popup for comments (bug 1987425) by @calixteman in #20249
- [Annotation] Use the new popup in reading mode (bug 1987426) by @calixteman in #20250
- [Editor] Fix the position of the comment popup and its dialog by @calixteman in #20278
- [Annotation] Save the comment changes made in reading mode (bug 1987427) by @calixteman in #20274
- Avoid unused css variables by @calixteman in #20279
- Use
console.warn/console.infowhere appropriate by @sigmaSd in #20252 - [Editor] Fix the focus outline for the comment dialog buttons by @calixteman in #20281
- [Editor] Make sure to not add extra editors when showing again a destroyed page by @calixteman in #20282
- Update OpenJPEG to 2.5.4 by @calixteman in #20286
- Serialize font data into an ArrayBuffer by @ryzokuken in #20197
- [Editor] Make sure the comment dialog is visible on the screen (bug 1989304) by @calixteman in #20283
- [Editor] Remove useless computations when setting the dimensions of an editor by @calixteman in #20285
- [Editor] When in HCM, don't apply light/dark color in the comment buttons (bug 1977269) by @calixteman in #20291
- [Editor] Update the color and the position of the comment button in reading mode they've been modified by @calixteman in #20295
- [Editor] Don't add scrollbars when it's useless in the comment sidebar (bug 1990099) by @calixteman in #20297
- [Editor] Avoid to use similar colors for background and foreground colors in HCM (bug 1990082) by @calixteman in #20298
- [Editor] Use some percent coordinates for the comment dialog (bug 1990104) by @calixteman in #20299
- [Editor] Fix the button labels in the comment dialog (bug 1990499) by @calixteman in #20300
- [Editor] Make the comment sidebar resizable (bug 1990544) by @calixteman in #20303
- [Editor] Add a title to the comment buttons (bug 1990813) by @calixteman in #20305
- [Editor] Move the focus to the comment button once editing is done (bug 1990820) by @calixteman in #20304
- [Editor] Make sure the selected editor is correctly focused after switching editing mode (bug 1990872) by @calixteman in #20307
- [Editor] Fix the URL for the 'Learn more' link in the comment sidebar (bug 1990454) by @calixteman in #20308
- [Editor] Show the comments in the sidebar in the chronological order,newest to oldest (bug 1990762) by @calixteman in #20310
- Update dependencies by @calixteman in #20309
- [Editor] Give the focus to the comment button after editing in reading mode by @calixteman in #20311
- [Annotation] In reading mode with new commment stuff enabled, use the comment popup for annotations without a popup but with some contents (bug 1991029) by @calixteman in #20312
- [Editor] Add some telemetry for the commenting feature (bug 1991172) by @calixteman in #20313
- [Editor] Remove useless sidebar css by @calixteman in #20314
- [Editor] Add a fake annotation (in the annotation layer) associated with an editor in order to be able to show the comment button (bug 1989420) by @calixteman in #20321
- [Editor] Avoid an error when getting the editors telemetry data by @calixteman in #20318
- [Annotation] Fix some timezone issues when getting a date from the date picker (bug 1991584) by @calixteman in #20320
- [Editor] Add the possibility to unselect a comment from the sidebar by @calixteman in #20322
- Increase the rendering quality of the detail view (bug 1991482) by @calixteman in #20323
- Improve serif fallback font name matching by @james-atticus in #20224
- Fix the creation of the annotation layer in the ref tests by @calixteman in #20329
- [Editor] Make sure the comment dialog always have relative coordinates between 0% and 100% by @calixteman in #20328
- [Editor] Slightly move the resizer in the sidebar comment in order to make it easier to use (bug 1992385) by @calixteman in #20332
- Only apply word spacing when there is a 0x20 in the text chunk by @calixteman in #20334
- Bump tar-fs from 3.1.0 to 3.1.1 by @dependabot[bot] in #20301
- Fix incremental saving with hybrid references by @calixteman in #20333
v5.4.149
This release contains improvements for the annotation editor, performance, printing and the viewer.
Changes since v5.4.54
- Bump the stable version in
pdfjs.configby @timvandermeij in #20124 - Update dependencies and translations to the most recent versions by @timvandermeij in #20125
- [Editor] Add a floating button in order to highlight the text selection and add a comment (bug 1979381) by @calixteman in #20119
- Add regression test for PR 19639 by @maettuu in #20109
- Add comment-* images when building components by @calixteman in #20128
- [Editor] Remove useless css and use a defined but unused property by @calixteman in #20131
- [Editor] Remove unused property by @calixteman in #20132
- Fix intermittent failure in the "must check that the computed value is correct" scripting integration test by @timvandermeij in #20134
- Disable printing when enablePermission is true and the pdf isn't allowed to be printed (bug 1978985) by @calixteman in #20129
- [Editor] Highlight text on a selectionchange event which hasn't been triggered by the pointer or the keyboard (bug 1976597) by @calixteman in #20138
- Trigger a fake scrollend event in case it hasn't been triggered by the browser (bug 1957680) by @calixteman in #20142
- Lazy initialize FinalizationRegistry used by IccColorSpace.#finalizer by @fnlctrl in #20148
- Make horizontal padding relative to device width by @Aditi-1400 in #20093
- Mark
canvasContextas optional by @k-nut in #20149 - Update l10n files by @calixteman in #20159
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #20161
- Check the setDash arguments by @calixteman in #20160
- [Editor] Avoid to use a null signal when setting listeners in the editor toolbar by @calixteman in #20166
- [Editor] Correctly hide deleted annotations by @calixteman in #20164
- Implement a delay for Chrome protocol calls in the integration tests, and skip the "must check that an existing highlight is ignored on hovering" integration test on Windows by @timvandermeij in #20126
- Update Firefox preferences for testing by @timvandermeij in #20171
- [Editor] Add the ability to get all the editable annotations in a pdf document by @calixteman in #20167
- Update dependencies and translations to the most recent versions by @timvandermeij in #20169
- Use Firefox stable for the tests because bug 1983414 by @calixteman in #20178
- Add logic to track rendering area of various PDF ops by @nicolo-ribaudo in #19043
- Use Firefox nightly with puppeteer by @calixteman in #20186
- [Editor] Make sure the resizers are on top of the editor content by @calixteman in #20183
- Use the cached annotations when collecting them by types by @calixteman in #20184
- [Editor] Move the comment button just before the delete one by @calixteman in #20180
- [Editor] Add a Rect entry to a saved popup in order to avoid to have an invalid pdf by @calixteman in #20179
- Use WebDriver BiDi for Chrome by @timvandermeij in #20188
- [Editor] Don't use a null signal for the comment button by @timvandermeij in #20189
- Update puppeteer to 24.17.0 by @calixteman in #20187
- [Editor] Add a button to the annotation having a popup in order to edit it by @calixteman in #20182
- Don't iterate over all empty slots in the xref entries (bug 1980958) by @calixteman in #20170
- Improve the selection check in the "doesn't jump when moving selection" integration test by @timvandermeij in #20190
- [Editor] Change the icon for inline comments by @calixteman in #20194
- Add a method goToXY in PDFLinkService in order to scroll the document at a given location by @calixteman in #20191
- Skip the curvature ink editor integration test for Chrome on Windows by @timvandermeij in #20195
- [Editor] Add a method to get an editor rect in the pdf page coordinates by @calixteman in #20196
- [Editor] Remove useless CSS and fix styling for the comment button by @calixteman in #20200
- [Editor] Fix the dimensions of the comment icon by @calixteman in #20209
- [Editor] Fix unit (for consistency) and remove few useless px by @calixteman in #20211
- Reset editing mode when changing the pdf document by @calixteman in #20212
- [Editor] Add a sidebar allowing the user to navigate between the comments in a pdf (bug 1985567) by @calixteman in #20210
v5.4.54
This release contains improvements for accessibility, annotations, the annotation editor, font conversion and the viewer.
Changes since v5.3.93
- Bump the stable version in
pdfjs.configby @timvandermeij in #20061 - Use the creation date in the popup when there is no modification date by @calixteman in #20058
- Fix typos across the codebase by @noritaka1166 in #20060
- Fix the default appearance of a Polygon annotation when a fill color is provided by @calixteman in #20063
- Add few methods to the Dict class in order to simplify the code when writing an annotation by @calixteman in #20064
- [api-minor] Move getContext call to InternalRenderTask by @ryzokuken in #20016
- Bump library version to
5.4by @ryzokuken in #20071 - Revert "Make horizontal padding relative to device width" by @calixteman in #20076
- Use the canvas context from mozPrintCallback when printing a pdf from the Firefox viewer by @calixteman in #20082
- In HCM, invert colors when hovering an annotation with a popup by @calixteman in #20084
- Add the l10n parameter when pasting a Signature annotation by @calixteman in #20081
- [Editor] Remove a popup from the DOM when it's deleted by @calixteman in #20077
- [Editor] Add the possibility to add a popup to an annotation when saving by @calixteman in #19976
- Fix the "must check that canvas perfectly fits the page whatever the zoom level" viewer integration test by @timvandermeij in #20087
- Update dependencies and translations to the most recent versions by @timvandermeij in #20086
- Handle the case where all the image data are in the alpha channel (bug 1975719) by @calixteman in #20085
- [Editor] Add a color picker in the toolbar of Ink and Freetext annotations by @calixteman in #20070
- Avoid Firefox test failure by @calixteman in #20092
- [Editor] Use a round color swatch for the basic color picker by @calixteman in #20094
- [Editor] Make sure that doorhangers are large enough to fit localized strings by @calixteman in #20095
- Don't add an undefined id to the span for marked content by @calixteman in #20103
- [Editor] Make possible to change the highlight color from the main panel by @calixteman in #20098
- [Editor] Add the possibility to add Popup annotations (bug 1976724) by @calixteman in #20080
- [Editor] Only add a popup to an existing annotation if it exits by @calixteman in #20104
- Use canvas context text primitives when the font file is missing by @calixteman in #20101
- Make the link annotations correctly announced by screen readers (bug 1708041) by @calixteman in #20096
- Fix intermittent failure in the viewer alert tests by @timvandermeij in #20106
- [Editor] Fix the highlighting colors in HCM (bug 1977259) by @calixteman in #20099
- Update translations and dependencies to the most recent versions by @timvandermeij in #20107
- Fix the xref table with the values we've at the beginning of a xref stream (bug 1978317) by @calixteman in #20113
- Use a HTML date/time input when a field requires a date or a time. by @calixteman in #20116
- [Editor] Don't show the actions button in the comment popup when it's useless by @calixteman in #20120
v5.3.93
This release contains improvements for accessibility, annotations, the annotation editor, forms, printing and the viewer.
Changes since v5.3.31
- Bump the stable version in
pdfjs.configby @timvandermeij in #19981 - Update Puppeteer to version 24.10.0 by @calixteman in #19985
- Update dependencies and translations to the most recent versions by @timvandermeij in #19997
- Fix intermittent failure in the find integration tests by @timvandermeij in #20000
- Log test number and id in reftests by @nicolo-ribaudo in #20002
- Move the popup annotation in the DOM just after the element triggering it by @calixteman in #20004
- [Editor] Fix the text alignment in freetext annotations (bug 1971134) by @calixteman in #20011
- Fix a printing issue on Mac (bug 1961423) by @calixteman in #19996
- Remove the possibility to go to the next page in using the ENTER key (bug 1971299) by @calixteman in #20003
- Make annotations focusable just after the text layer by @calixteman in #20013
- [JS] Make the date parser less strict by @calixteman in #20021
- Correctly handle files with a hash sign in their names (bug 1894166) by @calixteman in #19992
- Only show popups when they've some contents to display by @calixteman in #19986
- Slightly simplify the way to create the editor toolbar by @calixteman in #19993
- Allow to have an URL as file parameter when loading the viewer by @calixteman in #20027
- [Editor] When editing mode is disabled, allow to double click on a added annotation to edit it by @calixteman in #20023
- [Editor] Fix the accessibility of the dropdown in the color picker by @calixteman in #20022
- Update dependencies and translations to the most recent versions by @timvandermeij in #20028
- Get the text under highlight/squiggly/underline/strikethrough annotations (bug 1885505) by @calixteman in #20019
- Add some telemetry in order to know what are the certificates used in pdfs (bug 1973573) by @calixteman in #20031
- Don't remove a dash at the end of a line when guessing urls (bug 1974112) by @calixteman in #20038
- [Editor] In the signature modal, disable the save checkbox when the storage is full (bug 1974257) by @calixteman in #20039
- Remove the shadow from the links (bug 1974436) by @calixteman in #20041
- Make horizontal padding relative to device width by @Aditi-1400 in #20047
- Don't focus the viewer at startup (bug 1974863) by @calixteman in #20054
- [Editor] When an annotation is added, announce it if the user is using a screen reader (bug 1975264) by @calixteman in #20055
- Make Popup annotations always have noRotate flag set as true by @yyliu12 in #20043
- [Editor] Allow to change the editor mode when selecting the corresponding editor (bug 1975538) by @calixteman in #20056
v5.3.31
This release contains improvements for annotations, the annotation editor, font conversion, image decoding, performance and the viewer.
Changes since v5.2.133
- Bump the stable version in
pdfjs.configby @timvandermeij in #19875 - Add useractivation check for response function by @1Jesper1 in #19855
- Add a basic
navigatorpolyfill for older Node.js versions by @Snuffleupagus in #19876 - Fix the bbox when saving a rotated text field (bug 1963407) by @calixteman in #19881
- Assert that
numberToStringis called with a number (issue 19877) by @Snuffleupagus in #19880 - Don't update the visible canvas at 60 fps (bug 1936605) by @calixteman in #19856
- Allow to, optionally, keep Unicode escape sequences in
stringToPDFString(PR 17331 follow-up) by @Snuffleupagus in #19884 - Fix arguments in
toStylecall inCheckButtonby @gpanakkal in #19883 - Remove the
BasePdfManager.prototype.cataloggetter by @Snuffleupagus in #19888 - Simplify the
serializeXfaDatamethod and related code by @Snuffleupagus in #19887 - Simplify the
loadXfaImagesmethod and related code by @Snuffleupagus in #19885 - Slightly re-factor how we pre-load fonts and images in XFA documents by @Snuffleupagus in #19889
- Downscale jpeg2000 images, if needed, while decoding them by @calixteman in #19893
- Unify method return values in the
ObjectLoaderclass, and simplify how theObjectLoaderis used by @Snuffleupagus in #19895 - Update the Firefox repository used in
external/importL10n/locales.mjsby @Snuffleupagus in #19905 - Add a pref in order to cap the canvas area to a factor of the window one (bug 1958015) by @calixteman in #19755
- Shorten the code in the
src/core/document.jsfile by @Snuffleupagus in #19902 - Shorten the
PDFDocument.prototype.fieldObjectsgetter slightly by @Snuffleupagus in #19903 - Improve validation in the
Catalog.prototype.openActiongetter by @Snuffleupagus in #19913 - Decode appearance keys of checkboxes by @calixteman in #19911
- Reduce duplication when computing the maximum canvas pixels by @Snuffleupagus in #19915
- Preserve webpack/vite ignore comments when minifying by @nicolo-ribaudo in #19922
- Update qcms build by @calixteman in #19924
- [Editor] Keep aspect ratio when rescaling an image before being processed for a signature (bug 1962819) by @calixteman in #19925
- Run CI tests in Node.js version 24 by @Snuffleupagus in #19897
- Remove unused OpenJPEG wasm fallback logic by @nicolo-ribaudo in #19923
- Prefer the /Metadata, when available, in the document properties dialog (bug 1966086) by @Snuffleupagus in #19929
- Minify the js code when building for Firefox (bug 1965003) by @calixteman in #19934
- Allow using the
workerPortoption in Firefox by @Snuffleupagus in #19936 - Use the worker created in the child actor (bug 1966721) by @calixteman in #19935
- Bump undici from 6.21.1 to 6.21.3 by @dependabot in #19933
- Enable the
unicorn/prefer-import-meta-propertiesESLint plugin rule by @Snuffleupagus in #19916 - chore: remove redundant word in comment by @studystill in #19937
- Add a couple of new
eslint-plugin-unicornrules by @Snuffleupagus in #19917 - Replace
PDFWorker.fromPortwith a genericPDFWorker.createmethod by @Snuffleupagus in #19943 - Update dependencies and translations to the most recent versions by @timvandermeij in #19942
- Ensure that the viewer clears the
workerPortoption when using "fake" workers by @Snuffleupagus in #19939 - Use private fields in the
PDFDataRangeTransportclass by @Snuffleupagus in #19944 - Remove Node.js-specific checks when using the Fetch API by @Snuffleupagus in #19945
- Fix intermittent failure in the stamp editor's undo-related integration tests by @timvandermeij in #19949
- Fix missing
awaitfor asynchronous method calls in the integration tests by @timvandermeij in #19950 - [api-minor] Create the css color to use with the canvas in the worker by @calixteman in #19953
- Support Type3 fonts with an incomplete /FontDescriptor dictionary (issue 19954) by @Snuffleupagus in #19955
- Fix pdfjsPreloadedWorker when it's undefined by @calixteman in #19959
- Remove all the useless subarrays when using qcms. by @calixteman in #19957
- Bump library version to
5.3by @Snuffleupagus in #19960 - Don't create a useless subarray when getting image data from a flate stream by @calixteman in #19958
- Revert "Minify the js code when building for Firefox (bug 1965003)" by @calixteman in #19967
- Improve how the PDF.js version/commit information is exposed in the built files by @Snuffleupagus in #19956
- Show the op dispatched by constructPath in the debugger by @nicolo-ribaudo in #19961
- Ignore empty paths when optimizing
constructPathoperations (issue 19971) by @Snuffleupagus in #19972 - Replace semi-private fields/methods with actual private ones in
src/core/catalog.jsby @Snuffleupagus in #19964 - Move a few helper functions/classes out of the
src/display/api.jsfile by @Snuffleupagus in #19962 - Fix the colors of disabled buttons in the dialogs by @calixteman in #19975
- [Editor] Change mode when double clicking on an editor by @calixteman in #19969
- Fix intermittent failure in the "supports specifying a custom origin" viewer integration test by @timvandermeij in #19952
v5.2.133
This release contains improvements for the annotation editor, font conversion, performance, text selection and the viewer.
Changes since v5.1.91
- Bump the stable version in
pdfjs.configby @timvandermeij in #19741 - Update dependencies and translations to the most recent versions by @timvandermeij in #19742
- Isolate the "basic operations" freetext editor integration tests by @timvandermeij in #19743
- Simplify singularValueDecompose2dScale in order to make it using less memory by @calixteman in #19721
- Optimize save-transform-constructPath-restore by @calixteman in #19712
- Reduce some code duplication when handling globally cached images by @Snuffleupagus in #19746
- [api-minor] Move Type3-glyph compilation to the worker-thread by @Snuffleupagus in #19736
- Remove few useless beginPaths by @calixteman in #19732
- Change
Util.applyTransformto use the point-argument as an in/out parameter by @Snuffleupagus in #19751 - Simplify updateRectMinMax in order to use slightly less memory by @calixteman in #19752
- Also transfer
ImageBitmaps for image masks and inline images by @Snuffleupagus in #19760 - Bump library version to
5.2by @Snuffleupagus in #19766 - Attempt to get bundlers to leave Emscripten Compiler generated
URLs alone (issue 19761) by @Snuffleupagus in #19767 - Pass the /Info-strings as a
Mapto thesrc/core/writer.jscode by @Snuffleupagus in #19768 - Replace UpdateRectMinMax by getAxialAlignedBoundingBox by @calixteman in #19763
- Use
ctx.filterunconditionally in thesrc/display/canvas.jsfile by @Snuffleupagus in #19756 - Initialize the
isOffscreenCanvasSupportedoption, in theOperatorListclass, once per document by @Snuffleupagus in #19758 - Change how (most) fields are initialized in the
CanvasExtraStateclass by @Snuffleupagus in #19771 - Avoid to create an array when setting the text matrix by @calixteman in #19772
- Remove
Array.prototype.reduceusage from the unit-tests by @Snuffleupagus in #19776 - Tweak the Node.js version listed in "engines", to ensure that
process.getBuiltinModuleis available by @Snuffleupagus in #19777 - Use Array-destructuring when computing MIN/MAX in
AFSimple_Calculateby @Snuffleupagus in #19775 - Lint against
export [some declaration]by @nicolo-ribaudo in #19786 - [chrome] Fix text selection with
.markedContentby @nicolo-ribaudo in #19785 - Enable the
no-array-reduceESLint plugin rule by @Snuffleupagus in #19788 - Move the
IDENTITY_MATRIXconstant intosrc/core/core_utils.js(PR 19772 follow-up) by @Snuffleupagus in #19781 - Inline
PDFImage.createRawMaskin thePDFImage.createMaskmethod by @Snuffleupagus in #19773 - [api-minor] Replace various
getAllmethods with iterators by @Snuffleupagus in #19778 - Handle non-integer and out-of-range values correctly in Indexed color spaces by @Snuffleupagus in #19791
- [Editor] Fix the border line of the thickness slider in the signature modal while in HCM (bug 1959774) by @calixteman in #19799
- [Editor] Commit the current drawing before switching the current mode by @calixteman in #19797
- Use
adjustWidthsunconditionally for all embedded fonts (issue 19802) by @Snuffleupagus in #19804 - Catch circular references in /Form XObjects (issue 19800) by @Snuffleupagus in #19803
- Simplify the
getAnnotationStorageintegration-test helper function by @Snuffleupagus in #19790 - Simplify
Object.fromEntriesusage a tiny bit in theweb/generic_signature_storage.jsfile by @Snuffleupagus in #19789 - Change
PDFDocument.prototype._xfaStreamsto return aMapby @Snuffleupagus in #19805 - Add more logical assignment in the
src/folder by @Snuffleupagus in #19806 - Update dependencies and translations to the most recent versions by @timvandermeij in #19807
- Run the integration tests in a random order by @timvandermeij in #19809
- Update Webpack to version
5.99.5(issue 19808) by @Snuffleupagus in #19810 - Remove debug code from the integration tests, and skip the "must check that canvas perfectly fits the page whatever the zoom level" integration test in Chrome by @timvandermeij in #19812
- Improve error handling when parsing page-structTrees by @Snuffleupagus in #19824
- Avoid to create any subarrays when optimizing 'save, transform, constructPath, restore' (bug 1961107) by @calixteman in #19825
- Check that the
Object.prototypehasn't been incorrectly extended (PR 11582 follow-up) by @Snuffleupagus in #19828 - Replace the info icon in the undo bar by the right one (bug 1960523) by @calixteman in #19829
- Fix printing of XFA documents, by calling
XfaLayerBuilder.prototype.rendercorrectly (issue 19840) by @Snuffleupagus in #19841 - Always fallback to checking all destinations, when lookup fails (issue 19835) by @Snuffleupagus in #19836
- Remove duplicate secondaryToolbar button
mask-imagedefinitions (PR 18385 follow-up) by @Snuffleupagus in #19823 - Add a "supportsPrinting" viewer-option (bug 1957401) by @Snuffleupagus in #19816
- Disable userActivation before executing a setTimeout/setInterval callback by @calixteman in #19853
- Use the
light-darkCSS function in the viewer (issue 17780) by @Snuffleupagus in #19819 - Ensure that the /Form XObject /Resources-entry is actually a dictionary (issue 19848) by @Snuffleupagus in #19849
- Fix errors when running the integration tests by @calixteman in #19854
- Fix the debugger CSS when using the dark theme (PR 19819 follow-up) by @Snuffleupagus in #19861
- Ensure that "local" /Contents stream-dict /Resources aren't empty (PR 19803 follow-up) by @Snuffleupagus in #19815
- Fix 'print to pdf' on Mac with a cid font (bug 1961423) by @calixteman in #19862
- Fix beginner bugs link in README by @loganrosen in #19814
- Tweak the Node.js version listed in "engines", to ensure that process.getBuiltinModule is available by @luckymore in #19858
- Use the
MathClamphelper function more in theweb/folder (PR 19617 follow-up) by @Snuffleupagus in #19868 - Avoid (most) string parsing when removing/replacing the hash property of a URL by @Snuffleupagus in #19866
- Update dependencies and translations to the most recent versions by @timvandermeij in #19869
- Always render the Annotation- and XFA-layers with light
color-scheme(issue 19871) by @Snuffleupagus in #19874 - Fix the "must work properly when selecting undo by keyboard" integration test by @timvandermeij in #19873