Skip to content

Releases: mozilla/pdf.js

v4.2.67

29 Apr 17:27
49b3881
Compare
Choose a tag to compare

This release includes a new JPX decoder, based on OpenJPEG, which improves JPX image rendering performance and correctness. Moreover, this release contains improvements for the annotation editor, font conversion and the viewer.

Note that text selection boxes for some PDF files may overlap visually. This is a known issue that we currently track in #17561.

Changes since v4.1.392

  • Bump the stable version in pdfjs.config by @timvandermeij in #17924
  • Convert the history code to use proper private methods by @timvandermeij in #17925
  • Update dependencies and translations to the most recent versions by @timvandermeij in #17927
  • Remove the tag for missing font subset when trying to find a substitution by @calixteman in #17930
  • Fix resetting of cursor-tools when closing the document (PR 17464 follow-up) by @Snuffleupagus in #17933
  • Warn when a non-embedded font has an invalid name by @calixteman in #17934
  • Remove the mkdirp dependency in favor of the built-in Node.js fs.mkdirSync by @timvandermeij in #17935
  • Improve type definitions for the viewer by @ex37 in #17879
  • Fix the "must check that invisible fields are made visible" scripting integration test by @timvandermeij in #17940
  • Remove the rimraf dependency in favor of the built-in Node.js fs.rmSync in the test folder by @timvandermeij in #17938
  • [api-minor] Update the minimum supported Safari version to 16.4 by @Snuffleupagus in #17942
  • Fix the "must check that a field has the correct value when a choice is changed" scripting integration test by @timvandermeij in #17947
  • [api-minor] Add a jpx decoder based on OpenJPEG 2.5.2 by @calixteman in #17946
  • Bump library version to 4.2 by @Snuffleupagus in #17949
  • Build the openjpeg-based decoder in a web environment in order to avoid issues when used in node by @calixteman in #17954
  • Fix JpxImage API issues (PR 17946 follow-up) by @timvandermeij in #17951
  • [JPX] Throw an exception with the error messages returned by openjpeg by @calixteman in #17956
  • [Editor] Provide an element to render in the annotation layer after a freetext has been edited (bug 1890535) by @calixteman in #17914
  • Remove waitForTimeout usage from the helper functions by @timvandermeij in #17966
  • Remove some event listeners with signal in the viewer by @Snuffleupagus in #17964
  • [Editor] Don't show the context menu when resizing by @calixteman in #17973
  • Correctly update the xref table when an annotation is deleted by @calixteman in #17970
  • Update dependencies and translations to the most recent versions by @timvandermeij in #17972
  • Improve jpx decoding by around 20% in enabling simd support when compiling OpenJPEG by @calixteman in #17983
  • [api-minor] Remove the image-related error message prefixes by @Snuffleupagus in #17979
  • Use the pdf.js warn when using jpx decoder by @calixteman in #17985
  • Extend the globally cached image main-thread copying to "complex" images as well (PR 17428 follow-up) by @Snuffleupagus in #17978
  • Update JpxImage.parseImageProperties to support TypedArray data in IMAGE_DECODERS builds by @Snuffleupagus in #17977
  • Add signal-support in the EventBus, and utilize it in the viewer (PR 17964 follow-up) by @Snuffleupagus in #17967
  • Set correctly the change property for the event triggered when a choice list is changed by @calixteman in #17999
  • Remove all waitForTimeout usage from the annotation integration tests by @timvandermeij in #17969
  • Validate explicit destinations on the worker-thread to prevent DataCloneError (issue 17981) by @Snuffleupagus in #17984
  • Allow to insert several annotations under the same parent in the structure tree by @calixteman in #17986
  • Always enable smoothing when rendering downscaled image by @calixteman in #17868
  • Simplify the way to pass the glyph drawing instructions from the worker to the main thread by @calixteman in #18015
  • Validate additional font-dictionary properties by @Snuffleupagus in #18014
  • Add more validation of width-data by @Snuffleupagus in #18017
  • Reduce code-duplication when caching data in CompiledFont.getPathJs by @Snuffleupagus in #18018
  • Re-factor SimpleLinkService to extend PDFLinkService by @Snuffleupagus in #18013
  • [api-minor] Move the page reference/number caching into the API by @Snuffleupagus in #18001

v4.1.392

11 Apr 12:38
fcb76a7
Compare
Choose a tag to compare

This release features improvements, bugfixes and optimizations for accessibility, annotation rendering, annotation editing, font rendering, form handling, image rendering, text selection and the viewer.

Note that text selection boxes for some PDF files may overlap visually. This is a known issue that we currently track in #17561.

Changes since v4.0.379

Read more

v4.0.379

31 Dec 14:26
9e14d04
Compare
Choose a tag to compare

This release mainly contains improvements and bugfixes for the annotation editor functionality.

Changes since v4.0.269

  • Bump the stable version in pdfjs.config by @timvandermeij in #17339
  • Don't throw when there isn't enough data to get block info in flate stream by @calixteman in #17340
  • [Editor] Avoid to add a new ink editor when we aren't editing anymore by @calixteman in #17344
  • [Editor] Add a new editor to highlight some text in a pdf (bug 1866119) by @calixteman in #17317
  • [Editor] Move the alt text button in the editor toolbar by @calixteman in #17329
  • [Firefox] Remove the FirefoxCom.requestSync method by @Snuffleupagus in #17338
  • [Editor] Fix subtype for telemetry data (follow-up of #17329) by @calixteman in #17351
  • [Editor] Fix the colors in HCM when hovering a button in the editor toolbar by @calixteman in #17352
  • Use "count" and not "clickCount" when calling page.mouse.click() by @whimboo in #17358
  • Remove the "transitionend" event listener from the default viewer (issue 17347) by @Snuffleupagus in #17360
  • [Firefox] Restore opening of PDF attachments (issue 17353, bug 1867764) by @Snuffleupagus in #17363
  • [Editor] Disable mouse events when leaving the highlight mode by @calixteman in #17364
  • fuzz: initial integration by @manunio in #17337
  • Modernize the calculateMD5 and verifyManifestFiles test helper functions by @timvandermeij in #17367
  • [Editor] Make sure that all layers are disabled when an editing session is done by @calixteman in #17370
  • [Editor] Always give the focus to the ink editor when starting drawing (bug 1867588) by @calixteman in #17375
  • [Editor] Avoid conflicts between new persistent refs and the ones created when saving (bug 1865341) by @calixteman in #17374
  • Remove the unused --editor-toolbar-active-bg-color CSS variable (PR 17352 follow-up) by @Snuffleupagus in #17377
  • [Editor] Don't remove elements from the draw layer after it has been destroyed by @calixteman in #17380
  • [Editor] Highlight must keep selected after the document has been scrolled by @calixteman in #17381
  • Set text field value as a string when it's for a date or a time (bug 1868503) by @calixteman in #17385
  • [Editor] Add a color picker with predefined colors for highlighting text (bug 1866434) by @calixteman in #17359
  • Remove focus from the toggleButton when closing the sidebar with a mouse (issue 17361) by @Snuffleupagus in #17386
  • [Editor] Avoid to have a color picker for highlighting twice in the main toolbar by @calixteman in #17388
  • Use page.evaluateHandle when we want to await on document promises in integration tests by @calixteman in #17387
  • Update Puppeteer to version 21.6.0 and force "CDP" protocol by @whimboo in #17393
  • Switch Puppeteer tests from CDP to WebDriver BiDi by @whimboo in #17172
  • Limit the amount of console "spam" during fuzz tests (PR 17337 follow-up) by @Snuffleupagus in #17372
  • Collect a few non-MOZCENTRAL AppOptions default values together by @Snuffleupagus in #17391
  • Support Annotations with corrupt /BS-entries by @Snuffleupagus in #17395
  • Re-factor how the sandboxBundleSrc option is passed to PDFScriptingManager by @Snuffleupagus in #17397
  • Don't run beforeunload callback when closing page in integration tests by @calixteman in #17398
  • Set a print listener as soon as possible in the autoprint integration test by @calixteman in #17400
  • Bump actions/setup-python from 4 to 5 by @dependabot in #17411
  • Bump actions/deploy-pages from 2 to 3 by @dependabot in #17412
  • Adds missing button closing tag by @emielmolenaar in #17415
  • [Editor] Add some missing strings to localize for highlighting by @calixteman in #17414
  • Modernize the code in the test/downloadutils.mjs file by @timvandermeij in #17431
  • Center radio button checkmark by @jdanyow in #17429
  • Bump actions/upload-artifact from 3 to 4 by @dependabot in #17435
  • Bump github/codeql-action from 2 to 3 by @dependabot in #17434
  • Revert "Bump actions/upload-artifact from 3 to 4" by @Snuffleupagus in #17436
  • Prevent errors in AnnotationEditorUIManager.destroy if the altTextManager is undefined by @pulsejet in #17445
  • Toggle the visibility of the outlineOptionsContainer, in the sidebar, using only CSS by @Snuffleupagus in #17441
  • Attempt to further reduce re-parsing for globally cached images (PR 11912, 16108 follow-up) by @Snuffleupagus in #17428
  • Update packages and translations by @Snuffleupagus in #17456
  • Bump actions/upload-artifact from 3 to 4 by @dependabot in #17460
  • Bump actions/deploy-pages from 3 to 4 by @dependabot in #17461
  • Remove the internal "toolbarreset"/"secondarytoolbarreset" events and slightly re-factor the code by @Snuffleupagus in #17464

v4.0.269

26 Nov 12:38
f4b396f
Compare
Choose a tag to compare

This release contains improvements for the annotation editor, including a UI for deleting annotations and experimental support for highlight annotations, as well as bugfixes and improvements after feedback on the initial PDF.js 4.0 release.

Changes since v4.0.189

v4.0.189

05 Nov 17:41
50f52b4
Compare
Choose a tag to compare

PDF.js 4.0 is a major release that contains a number of API changes, features and bugfixes. The following changes are highlighted:

  • Conversion to JavaScript modules for the builds
  • Conversion to Fluent for localization
  • Optimizations for CPU and memory usage
  • Improvements and bugfixes for the annotation editor and annotation rendering
  • Removal of the deprecated SVG back-end
  • Removal of other deprecated functionality and options

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

Changes since v3.11.174

Read more

v3.11.174

24 Sep 17:44
ce87167
Compare
Choose a tag to compare

This release primarily features accessibility improvements for the annotation editor and fixes for the type definitions.

Changes since v3.10.111

  • Bump versions in pdfjs.config by @timvandermeij in #16876
  • Add tagged annotations in the structure tree (bug 1850797) by @calixteman in #16886
  • Fix the id used in aria-controls used to make a relationship between the popup and its parent by @calixteman in #16889
  • Fix JSDoc types by @stof in #16888
  • Ignore null-chars when using structTree-data in the viewer by @Snuffleupagus in #16891
  • Stop using removeNullCharacters in the addLinkAttributes helper function by @Snuffleupagus in #16892
  • [Type-definitions] Fix type generator to support import maps by @stof in #16890
  • Update packages and translations by @Snuffleupagus in #16895
  • A couple of small InternalRenderTask changes by @Snuffleupagus in #16881
  • Drop redundant styles from .grab-to-pan-grab:active by @Rob--W in #16896
  • Make annotations focusable (bug 1851489) by @calixteman in #16898
  • Unconditionally render non-form annotations in the annotation layer (bug 1851498) by @calixteman in #16899
  • Support downloading FileAttachment annotations with the keyboard by @Snuffleupagus in #16902
  • Only call the focus/blur callbacks when it's necessary (bug 1851517) by @calixteman in #16905
  • Bump actions/checkout from 3 to 4 by @dependabot in #16897
  • [Editor] Avoid to use parent of editors in destroyed pages by @calixteman in #16911
  • Construct the correct field name and strip out classes when searching by @calixteman in #16915
  • [Editor] Add the parent tag id (if any) to the serialized editors (bug 1845087) by @calixteman in #16916
  • Simplify writeObject function by @calixteman in #16921
  • Slightly reduce asynchronicity when parsing Annotations by @Snuffleupagus in #16920
  • Update packages and translations by @timvandermeij in #16925
  • Enable unit test "creates pdf doc from non-existent URL" by @timvandermeij in #16932
  • [Editor] Only get back the focus when it has been lost after an editor has been moved in the DOM by @calixteman in #16940
  • Ensure that the entire PDF document is loaded before we begin saving it by @Snuffleupagus in #16941
  • [Editor] Move an editor in the DOM just after having moved it on the screen by @calixteman in #16944
  • [Editor] Change the style of the bounding box and the resizers (bug 1852897) by @calixteman in #16943
  • [Editor] Change the colors of the outline and the resizers for selected editors in HCM by @calixteman in #16950
  • Make it possible to clear the cache, used by the getB function in src/core/pattern.js by @Snuffleupagus in #16951
  • Remove the remaining closures in the src/core/colorspace.js file by @Snuffleupagus in #16954
  • Simplify the EvaluatorPreprocessor.opMap getter a little bit by @Snuffleupagus in #16956
  • Use await even more in the "SaveDocument" worker-thread handler by @Snuffleupagus in #16957
  • Update Puppeteer to version 21.2.1 by @timvandermeij in #16958
  • Remove the closure from the CipherTransformFactory class by @Snuffleupagus in #16959
  • Remove (some) closures from web/debugger.js by @Snuffleupagus in #16961
  • Fix integration test "Interaction in bug1844576.pdf must check that a field has the correct formatted value" by @timvandermeij in #16962
  • Fix integration test "FreeText Editor Move several FreeTexts must move several annotations" by @timvandermeij in #16964
  • [Editor] Add the ability to create/update the structure tree when saving a pdf containing newly added annotations (bug 1845087) by @calixteman in #16938
  • [Editor] Add a button to trigger a dialog for adding an alt text (bug 1844952) by @calixteman in #16955
  • [Editor] Avoid to have some transparency in the icon used in the 'Alt text' button by @calixteman in #16972
  • Fix a CSS linter issue in removing a useless comma by @calixteman in #16974
  • [Editor] Use the same height as in the svg for icons for the alt-text button by @calixteman in #16975
  • [Editor] Add a dialog box in order to get alt-text data (bug 1844952) by @calixteman in #16952
  • [Editor] Make the border of the resizers slightly rounded by @calixteman in #16980
  • [Editor] Update alt text dialog description by @calixteman in #16979
  • Ignore optional content with missing /Type-entries by @Snuffleupagus in #16981
  • [Editor] Allow the user to add and save an alt-text for images (bug 1844952) by @calixteman in #16977
  • [Editor] Remove copy/paste listener when alt text dialog is displayed by @calixteman in #16982
  • [Editor] Add a tooltip showing the alt text when hovering the alt-text button (bug 1844952) by @calixteman in #16983
  • Don't try to close the altText dialog if it's not open (PR 16977 follow-up) by @Snuffleupagus in #16984
  • [Editor] Add more telemetry for the 'add image' feature (bug 1853960) by @calixteman in #16987
  • [Editor] Change some strings in the alt-text dialog by @calixteman in #16986
  • [Editor] Change the colors for the disabled Save button in alt text dialoag in HCM by @calixteman in #16985
  • Use the new "reporttelemetry" event in more viewer components by @Snuffleupagus in #16989
  • [Editor] Add an aria-label to the alt-text button depending on its state by @calixteman in #16990
  • [Editor] Tweak few values after review from UX by @calixteman in #16988
  • Ensure that all "alt_text_*" save-telemetry values are boolean (PR 16987 follow-up) by @Snuffleupagus in #16991
  • Enable the Stylelint declaration-block-no-duplicate-properties rule (issue 16995) by @Snuffleupagus in #16996
  • Make one of the m-c linters happy by @calixteman in #16998
  • [GeckoView] Avoid bundling the AltTextManager class, since it's unused by @Snuffleupagus in #16993
  • [GeckoView] Exclude annotation_editor_layer_builder.css in the build (issue 16994) by @Snuffleupagus in #16999
  • Restore the collectFields parameter in the Annotation code (issue 17000) by @Snuffleupagus in #17003
  • Prevent wheel/touch zooming in the viewer when a dialog is open by @Snuffleupagus in #17004
  • [Editor] Avoid to darken the current editor when opening the alt-text dialog by @calixteman in #17002
  • [Editor] Make the altText dialog labels part of telemetry (PR 16987 follow-up) by @Snuffleupagus in #17009
  • [Editor] Darken the toolbar when the alt-text dialog is opened by @calixteman in #17010
  • Don't bother trying to unregister the "reporttelemetry" event listener by @Snuffleupagus in #17014
  • [Editor] Tweak the save flow in the alt-text dialog by @calixteman in #17005
  • [Editor] Let the Save button always enabled in the alt-text dialog by @calixteman in #17015
  • Don't reset this.#currentEditor when destroying the dialog by @Snuffleupagus in #17011
  • [Editor] Report telemetry when closing the altText dialog with Esc (PR 16987 follow-up) by @Snuffleupagus in #17012
  • [Editor] Disable context menu on alt-text button and in the associated dialog by @calixteman in #17016
  • Fix integration test "FreeText Editor FreeText (edit existing in double clicking on it) must move an annotation" by @timvandermeij in #16967
  • Fix integration test "Interaction in issue15053.pdf must check that a button and text field with a border are hidden" by @timvandermeij in https://github.com/mozilla/pd...
Read more

v3.10.111

27 Aug 16:00
e142bae
Compare
Choose a tag to compare

This release primarily features improvements and bugfixes for the annotation editor.

Changes since v3.9.179

  • Bump versions in pdfjs.config by @timvandermeij in #16769
  • Add the color changes in the annotation storage by @calixteman in #16767
  • Fix typo in the baseVersion commit hash (PR 16769 follow-up) by @Snuffleupagus in #16770
  • Make sure WillPrint ran before starting printing by @calixteman in #16766
  • [GeckoView] Add missing CSS variables for the dialog functionality by @Snuffleupagus in #16771
  • [Editor] Limit image types to the ones supported by the browser (bug 1846230) by @calixteman in #16773
  • [api-minor] Don't print hidden annotations (bug 1815196) by @calixteman in #16029
  • [GeckoView] Allow to query pdf.js to know if we can avoid to print a pdf (bug 1846296) by @calixteman in #16776
  • [api-minor] Deprecate the PDFDocumentProxy.getJavaScript method by @Snuffleupagus in #16779
  • [Editor] Let SVG images be resized horizontally/vertically without keeping the aspect ratio (bug 1846727) by @calixteman in #16780
  • [Editor] Use a getter and not a function for the _checkIfSVGFitsInCanvas (bug 1846727) by @calixteman in #16784
  • [Editor] Stop the resize session when the window is blurred by @calixteman in #16786
  • [Editor] Refactor dragging and dropping an editor (bug 1802895, bug 1844618) by @calixteman in #16781
  • Update packages and translations by @Snuffleupagus in #16795
  • Attempt to expose e.g. pdfjsLib globally regardless of how the library is imported (issue 16778) by @Snuffleupagus in #16790
  • Use the round CSS function in the setLayerDimensions helper function by @Snuffleupagus in #16794
  • [Editor] Change the resize cursors to bidirectional variants by @Snuffleupagus in #16799
  • [Editor] Fix the dimensions of the annotation editor layer (follow-up of #16794) by @calixteman in #16798
  • [Annotation] Strip out the array index in the path only when the path is from a terminal node (bug 1847733) by @calixteman in #16807
  • Take fill-alpha into account with default icons for FileAttachment annotations (issue 16800) by @Snuffleupagus in #16804
  • [Editor] Move the stamp button on the right of the pen one (bug 1847707) by @calixteman in #16802
  • [Editor] Fix the resizing of an editor when it's rotated (bug 1847268) by @calixteman in #16793
  • [Editor] Avoid to add a new line when hitting enter with a selected freetext editor by @calixteman in #16808
  • [Editor] Move an the editor div in the DOM once a translation with the keyboard is done by @calixteman in #16809
  • [Editor] Avoid to unselect some editors when the main window is focused by @calixteman in #16812
  • [Editor] Move the parameter elements for FreeText and Ink annotations at the right place (follow-up of #16802) by @calixteman in #16813
  • [Editor] Avoid to add a cancelled added image in the undo/redo stack by @calixteman in #16818
  • Introduce even more optional chaining in the code-base by @Snuffleupagus in #16815
  • [Editor] Avoid to have slightly truncated images because of non-integer canvas dimensions by @calixteman in #16820
  • [Editor] Add the possibility to move all the selected editors with the mouse (bug 1847894) by @calixteman in #16811
  • [Editor] Don't forget to encrypt image streams (see issue #16821) by @calixteman in #16822
  • Fallback to check all pages when getting the pageIndex of FieldObjects by @Snuffleupagus in #16823
  • [Editor] Avoid to unselect when a new page is rendered by @calixteman in #16824
  • [Editor] Avoid showing the context menu or resizing when a resizer is right clicked by @calixteman in #16825
  • Re-factor PDFViewerApplication._initializeAutoPrint slightly (PR 16779 follow-up) by @Snuffleupagus in #16810
  • [Editor] Add a button to explicitly add an image (bug 1848108) by @calixteman in #16819
  • [Editor] Remove the stamp editor displayed when the image was loading (bug 1848313) by @calixteman in #16826
  • [Editor] Add the possibility to paste an image from the clipboard (bug 1848317) by @calixteman in #16828
  • Remove the src/core/ Babel excludes, since they no longer seem necessary by @Snuffleupagus in #16829
  • Remove the "no-babel-preset" comment used with the LIB build-target (PR 16829 follow-up) by @Snuffleupagus in #16831
  • Avoid using the global workerPort when destruction has started, but not yet finished (issue 16777) by @Snuffleupagus in #16830
  • Improve the "write a new annotation, save the pdf and check that the text content is correct" unit-test (PR 16559 follow-up) by @Snuffleupagus in #16835
  • Add a helper method to reduce duplication in StampEditor.#getBitmap by @Snuffleupagus in #16840
  • Update the StampEditor.isEmpty method to handle File (PR 16828 follow-up) by @Snuffleupagus in #16844
  • Update packages and translations by @Snuffleupagus in #16850
  • Add a unit-test for the "correct" way of using the global workerPort in parallel (PR 16830 follow-up) by @Snuffleupagus in #16834
  • Initialize the PDFWorker.#workerPorts WeakMap lazily by @Snuffleupagus in #16852
  • Add the .mjs file-extension to the EditorConfig by @Snuffleupagus in #16860
  • Add the "aria-controls" attribute to the StampEditor toolbar-button by @Snuffleupagus in #16858
  • Revert fix for bug 1838855 (bug 1849876) by @calixteman in #16862
  • Don't reset all fields when the resetForm argument is an array by @calixteman in #16864
  • Exclude lineEndings, in Annotation-data, in MOZCENTRAL builds (PR 14899 follow-up) by @Snuffleupagus in #16856
  • Introduce more optional chaining in the code-base by @Snuffleupagus in #16875

v3.9.179

30 Jul 11:02
1ef6fbc
Compare
Choose a tag to compare

This release features improvements in the areas of annotation editing (including a new stamp editor), accessibility, form rendering/saving, text selection/copying and other bugfixes.

Changes since v3.8.162

Read more

v3.8.162

02 Jul 13:14
2c74323
Compare
Choose a tag to compare

This release features improvements in the areas of annotation editing/saving/printing, font conversion, accessibility and performance.

Changes since v3.7.107

Read more

v3.7.107

29 May 12:07
036f855
Compare
Choose a tag to compare

This release features improvements in the areas of font conversion and substitution, annotation rendering and data compression, ink tool smoothing, text selection and extraction, image rendering and canvas rendering performance.

Changes since v3.6.172