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
- Bump versions in
pdfjs.config
by @timvandermeij in #16629 - Tweak the README slightly by @Snuffleupagus in #16635
- [Editor] Fix dimensions of a rotated FreeText after a dimensions change by @calixteman in #16637
- [Editor] When saving/printing a FreeText, use the identity matrix for the AP and set the cm when rendering it by @calixteman in #16640
- [Editor] Move the 'keep aspect ratio' stuff to the AnnotationEditor level by @calixteman in #16641
- [Editor] Use css aspect-ratio property to keep the aspect ratio during resize by @calixteman in #16645
- Fix typos when handling CMYK colors in
src/core/default_appearance.js
by @Snuffleupagus in #16646 - [Editor] Add a basic stamp editor (bug 1790255) by @calixteman in #16585
- [Editor] Add l10n-strings for the Stamp-editor (PR 16585 follow-up) by @Snuffleupagus in #16649
- Improve
parseAppearanceStream
to handle more "complex" ColorSpaces by @Snuffleupagus in #16648 - [Editor] Avoid to throw when deleting some invisible editors by @calixteman in #16652
- [Editor] Support svg images in the stamp annotation by @calixteman in #16650
- Don't try to hide an already invisible PopupAnnotation (issue 16660) by @Snuffleupagus in #16661
- [Editor] Edit an existing FreeText annotation in double-clicking on it (bug 1787298) by @calixteman in #16659
- Add unit-tests to check that more PDF.js APIs expose the expected functionality by @Snuffleupagus in #16658
- [CRX] Drop code supporting ancient Chrome versions by @Rob--W in #16631
- Correct recognition of fragments at document load by @Rob--W in #16630
- [ESM] Convert the
external/importL10n
-folder to use standard modules by @Snuffleupagus in #16663 - [ESM] Convert
parseMinified
to useimport()
syntax by @Snuffleupagus in #16664 - [ESM] Convert most of
test
-folder to use standard modules by @Snuffleupagus in #16665 - [ESM] Convert the "wintersmith"-task to use
import()
syntax by @Snuffleupagus in #16666 - [ESM] Convert the "cmaps"-task to use
import()
syntax by @Snuffleupagus in #16667 - [ESM] Convert the "default preferences"-handling to use
import()
syntax by @Snuffleupagus in #16671 - [Editor] Cheat the stamp editor icon to make a linter in m-c happy by @calixteman in #16672
- [ESM] Convert the
gulpfile
to use standard modules by @Snuffleupagus in #16668 - [ESM] Convert the
external/builder/
-folder to use standard modules by @Snuffleupagus in #16669 - [Editor] Try to make the position of an edited FreeText the more accurated as possible by @calixteman in #16642
- Re-enable editing, if necessary, when exiting PresentationMode (PR 16659 follow-up) by @Snuffleupagus in #16675
- Tweak the
writeStream
implementation slightly by @Snuffleupagus in #16678 - Access the
isOffscreenCanvasSupported
option once inPDFViewerApplication._initializeViewerComponents
by @Snuffleupagus in #16683 - [Editor] Always use the data url when loading a SVG in order to avoid CSP issue (bug 1843255) by @calixteman in #16686
- [Editor] Resize the image when the page is zoomed by @calixteman in #16690
- Update packages and translations by @Snuffleupagus in #16693
- Ensure that a test-suite that runs no tests is treated as a failure by @Snuffleupagus in #16695
- Enable more ESLint
unicorn
plugin rules by @Snuffleupagus in #16697 - Re-factor the
PDFScriptingManager
-class for the viewer-components by @Snuffleupagus in #16687 - [GeckoView] Fix l10n of the download toolbar-button (PR 16340 follow-up) by @Snuffleupagus in #16701
- [Editor] Avoid to have some part of an editor outside its page (bug 1843303) by @calixteman in #16689
- [Editor] Use 2 decimals for editor positions and dimensions by @calixteman in #16702
- [api-minor] Let Babel handle the necessary
core-js
polyfills automatically by @Snuffleupagus in #16703 - Remove most build-time
require
-calls from thesrc/display/
-folder by @Snuffleupagus in #16698 - [Editor] Don't forget to generate non-missing images when printing (bug 1844036) by @calixteman in #16706
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #16707
- [Editor] Bind redo action on meta+shift+z on mac (bug 1844293) by @calixteman in #16709
- Draw correctly background images in ref tests by @calixteman in #16713
- [Annotation] Use the clip-path property when an annotation has some quad points by @calixteman in #16492
- Don't reset temporary XRef-entries during saving (PR 16392 follow-up) by @Snuffleupagus in #16717
- [Editor] Allow to delete an editor in using the Delete key (aka fn+backspace) (bug 1844625) by @calixteman in #16719
- Text annotations must use their own canvas when their appearance is generated (bug 1844576) by @calixteman in #16720
- Don't get the text content for an annotation when /NeedAppearances is true (bug 1844583) by @calixteman in #16721
- Don't uselessly change the filter when drawing (bug 1508765) by @calixteman in #16722
- XFA - Set storage values to select and option elements by @TaTo30 in #16714
- Enable the
no-lonely-if
ESLint rule by @Snuffleupagus in #16715 - Enable the ESLint
no-var rule
in theextensions/firefox/
folder by @Snuffleupagus in #16724 - Update Stylelint to the latest version by @Snuffleupagus in #16725
- Update packages and translations by @Snuffleupagus in #16728
- Remove the
useOnlyCssZoom
preference by @Snuffleupagus in #16729 - Remove the
vinyl-fs
dependency by @timvandermeij in #16730 - [GeckoView] Fix string for download button by @calixteman in #16726
- Don't replace Acroform dictionary if nothing has changed when saving (bug 1844572) by @calixteman in #16718
- [api-minor] Attempt to prevent Node.js-specific polyfill errors from completely breaking the library by @Snuffleupagus in #16733
- [Editor] Avoid spurious text selection when double clicking to add a FreeText by @calixteman in #16736
- Fix copying of the reduced Planck constant by @Snuffleupagus in #16735
- [Editor] Add some resizers all around an editor (bug 1843302) by @calixteman in #16732
- [Editor] Use inset instead of top/left in css by @calixteman in #16737
- Re-factor how the
debugger
accesses API-functionality by @Snuffleupagus in #16738 - [Editor] Set keyboard events on window instead of the main container by @calixteman in #16740
- [Editor] Avoid to trigger an editor creation when pinching on a touchscreen by @calixteman in #16741
- Improve rendering of buttons in the toolbar in HCM (bug 1845515) by @calixteman in #16748
- [Editor] Make editors movable in using the keyboard (bug 1845088) by @calixteman in #16746
- [Editor] Use the same keyboard shortcut as in Preview to move an editor on mac by @calixteman in #16749
- Enable the
unicorn/prefer-ternary
ESLint plugin rule by @Snuffleupagus in #16753 - [Editor] Add the possibility to move an empty freetext editor with the keyboard (bug 1845088) by @calixteman in #16750
- [Editor] Reduce a bit of duplication on
_keyboardManager
initialization by @Snuffleupagus in #16755 - [Editor] Blur unselected editors by @calixteman in #16756
- Tweak the
useWorkerFetch
default value checks (PR 15879 follow-up) by @Snuffleupagus in #16758 - Avoid eagerly matching "trailer"-strings when searching for incomplete objects in
XRef.indexObjects
(issue 16759, PR 15854 follow-up, bug 1845762) by @Snuffleupagus in #16760 - [Editor] When an editor is unselected give the focus to the current page by @calixteman in #16762
- [GeckoView] Bundle the Firefox printing code in the viewer (bug 1810111) by @Snuffleupagus in #16163
- A few small
web/app.js
simplifications by @Snuffleupagus in #16744 - Add an
eq
test for bug 858128 by @Snuffleupagus in #16765 - [api-minor] Replace the
useOnlyCssZoom
option withmaxCanvasPixels = 0
instead (PR 16729 follow-up) by @Snuffleupagus in #16731 - Ensure that failing to open the password dialog once won't permanently disable it (PR 15335 follow-up) by @Snuffleupagus in #16768