Skip to content

Releases: mozilla/pdf.js

v5.3.93

06 Jul 18:39
cbeef32
Compare
Choose a tag to compare

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.config by @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

01 Jun 18:23
47ad820
Compare
Choose a tag to compare

This release contains improvements for annotations, the annotation editor, font conversion, image decoding, performance and the viewer.

Changes since v5.2.133

v5.2.133

27 Apr 12:46
4f77613
Compare
Choose a tag to compare

This release contains improvements for the annotation editor, font conversion, performance, text selection and the viewer.

Changes since v5.1.91

v5.1.91

30 Mar 13:26
45cbe8b
Compare
Choose a tag to compare

This release contains improvements for the annotation editor, font conversion, performance, SMask rendering and the viewer, as well as bugfixes and improvements after feedback on the initial PDF.js 5.0 release.

Changes since v5.0.375

  • Bump the stable version in pdfjs.config by @timvandermeij in #19663
  • Replace a few simple regular expressions in the XFA-code with string parsing by @Snuffleupagus in #19662
  • Update dependencies and translations to the most recent versions by @timvandermeij in #19665
  • [api-minor] Attempt to support fetching the raw data of the PDF document from the PDFDocumentLoadingTask-instance (issue 15085) by @Snuffleupagus in #19632
  • Bump library version to 5.1 by @Snuffleupagus in #19667
  • Don't get ICC color space files if required API options are missing by @timvandermeij in #19669
  • Fix the "Signature Editor Basic operations must check copy and paste" integration test by @timvandermeij in #19671
  • Remove documentation for unused l10n variable (PR 18492 follow-up) by @Snuffleupagus in #19673
  • For JPEG images with CMYK-data, ensure that the alpha-component is set correctly when WebAssembly is disabled (issue 19676) by @Snuffleupagus in #19677
  • Introduce a fetchSync helper function for the IccColorSpace classes by @Snuffleupagus in #19675
  • Introduce more async code in the src/core/document.js file by @Snuffleupagus in #19674
  • Improve addSignatureDescription/editSignatureDescription handling (issue 19683) by @Snuffleupagus in #19684
  • [Editor] Take into account the parent rotation when switch to edit mode (issue #19424) by @calixteman in #19685
  • Fix the MD5 computation in the src/core/writer.js file by @Snuffleupagus in #19693
  • Improve the implementation in src/core/writer.js a little bit by @Snuffleupagus in #19692
  • Replace the setValues function with Array.prototype.fill() in the src/core/bidi.js file by @Snuffleupagus in #19703
  • [api-minor] Add a basic AbortSignal.any polyfill in PDF.js legacy builds by @Snuffleupagus in #19681
  • Extend getSupplementalGlyphMapForCalibri with Pound-sign (issue 19695) by @Snuffleupagus in #19696
  • Isolate the scripting integration tests by @timvandermeij in #19705
  • [api-minor] Use a Path2D when doing a path operation in the canvas (bug 1946953) by @calixteman in #19689
  • Isolate the "move editor with arrows" freetext editor integration tests by @timvandermeij in #19706
  • Introduce Math.sumPrecise usage in the code-base by @Snuffleupagus in #19710
  • Update dependencies and translations to the most recent versions by @timvandermeij in #19704
  • Fix save/restore while in smask mode by @calixteman in #19708
  • Isolate the "create editor with keyboard" freetext editor integration tests by @timvandermeij in #19711
  • Take into account the path and the line width when consuming a stroked path by @calixteman in #19715
  • Use the MathClamp helper function even more (PR 19617 follow-up) by @Snuffleupagus in #19714
  • Add new bounding-box helpers in Util to reduce code duplication by @Snuffleupagus in #19713
  • Take into account the group bbox by @calixteman in #19716
  • Don't overwrite the global alpha when switching to smask mode (bug 1764587) by @calixteman in #19717
  • In the struct tree a kid can be a reference to an MCID entry (issue #19694) by @calixteman in #19702
  • Remove Array.prototype.reduce usage from the src/core/xfa/template.js file by @Snuffleupagus in #19691
  • [api-minor] Enable enableAutoLinking by default by @Snuffleupagus in #19701
  • Pass the XRef-instance explicitly to the StructTreeRoot class, and simplify the StructElementNode.prototype.role getter by @Snuffleupagus in #19719
  • [Editor] Fix the border color of a tab panel in HCM (bug 1956110) by @calixteman in #19722
  • [Editor] in the signature UI, disable the description input if there is no signature (bug 1956114) by @calixteman in #19725
  • Use Util.rectBoundingBox more in the annotation code (PR 19713 follow-up) by @Snuffleupagus in #19726
  • [Editor] Set an aria-description for an added signature (bug 1956513) by @calixteman in #19728
  • Update @fluent/dom to 0.10.1 by @calixteman in #19730
  • Pre-apply the transform when building the Path2D objects for Type3-fonts by @Snuffleupagus in #19731
  • [Editor] Add a border to the undo button in the snackbar in order to make a contrast (bug 1952563) by @calixteman in #19734
  • Spell "properly" in viewer integration-test names by @Snuffleupagus in #19740
  • Simplify handling of the color-parameter in TilingPattern (PR 4824 follow-up) by @Snuffleupagus in #19737
  • Shorten the PDFViewerApplication._initializeViewerComponents method by @Snuffleupagus in #19720
  • Reduce duplication when specifying the fn-operations in buildPaintImageXObject by @Snuffleupagus in #19739
  • [api-minor] Attempt to improve support for using the PDF.js builds with Vite by @Snuffleupagus in #19733
  • Apply char/word-spacing correctly for missing Type3-glyphs by @Snuffleupagus in #19735

v5.0.375

15 Mar 18:10
23972e1
Compare
Choose a tag to compare

PDF.js 5.0 is a major release that contains a number of API changes, features and bugfixes.

The following significant new features are highlighted:

  • Improved JPEG 2000 decoding support
    • The OpenJPEG decoder was moved into a separate .wasm file, which requires setting a new wasmUrl API option in order to use it; see PR #19329.
    • A (much slower) JavaScript OpenJPEG fallback decoder was added (also uses the wasmUrl API option) for environments without WebAssembly support; see PR #19525.
  • Support for ICC profiles
    • This requires WebAssembly support, and that the wasmUrl API option is set; see PR #19564.
    • Use an ICC profile to improve CMYK to RGB color conversion, which requires setting a new iccUrl API option in order to use it; see PR #19620.
    • Currently Lab profiles are not supported, which is tracked in bug 1717767.
  • Improved rendering of large pages in the viewer
    • Render the currently visible portion of pages at full resolution, once we've reached the size limits and are falling back to CSS-zooming; see PR #19128.
    • Limit the maximum canvas dimensions, to avoid rendering breaking and canvases being empty; see PR #19604.
  • Enable creation of hyperlinks, in the viewer, from text that look like URLs
    • This is disabled by default because of some remaining issues, but can be enabled in the viewer with the enableAutoLinking option/preference; see PR #19110.

The following significant changes are highlighted (which may require changes in third-party PDF.js implementations):

  • Addition of a couple of new CSS variables, that e.g. the text and annotation layers now depend upon; see PR #19469.
  • Removal of a couple of old exceptions; see PR #19264.

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

Changes since v4.10.38

Read more

v4.10.38

01 Jan 13:39
f9bea39
Compare
Choose a tag to compare

This release contains improvements for accessibility, the annotation editor, font conversion, performance, SMasks and the viewer.

Changes since v4.9.155

v4.9.155

05 Dec 21:21
a4eb840
Compare
Choose a tag to compare

This release primarily contains a bugfix for a Node.js-specific regression in the previous release; see #19145 and #19149 for context. Moreover, improvements for the annotation editor are included.

Changes since v4.9.124

v4.9.124

01 Dec 18:59
867aaf0
Compare
Choose a tag to compare

This release contains improvements for the annotation editor, form rendering, image conversion, text selection and the viewer.

Changes since v4.8.69

v4.8.69

02 Nov 18:51
3634dab
Compare
Choose a tag to compare

This release contains improvements for the annotation editor, font conversion, form rendering, image conversion and the viewer.

Changes since v4.7.76

  • Bump the stable version in pdfjs.config by @timvandermeij in #18858
  • Fix typing logic in the scripting integration tests by @timvandermeij in #18862
  • Improve the promise-caching in the PDFDocument.fieldObjects getter by @Snuffleupagus in #18871
  • Remove the temporary "visibilitychange" listener, in PDFViewer, with AbortSignal.any() by @Snuffleupagus in #18873
  • Avoid exceptions in the console with ill-formed flate streams by @calixteman in #18878
  • Don't add the grey outline when hovering a selected highlight by @calixteman in #18879
  • [Editor] Remove ColorPicker event listeners with AbortSignal.any() (PR 18586 follow-up) by @Snuffleupagus in #18874
  • Fix failing integration test on Windows with Chrome by @calixteman in #18860
  • Add an option to gulp makeref/browsertest to only run tests with specific ids by @calixteman in #18833
  • Move the regular expression caching into the PDFDateString class by @Snuffleupagus in #18885
  • Remove event listeners with AbortSignal in the AltTextManager class by @Snuffleupagus in #18881
  • Don't add attribute 'aria-haspopup' when no popup is rendered for an annotation by @calixteman in #18889
  • Clamp the hival parameter of Indexed color space to the range [0; 255] by @calixteman in #18890
  • Fallback on gray colorspace when there are no colorspace and no name in the scn/SCN arguments by @calixteman in #18895
  • Some jpx images can have a mask by @calixteman in #18899
  • implementing optional content radiobutton groups by @agrahn in #18825
  • Remove unnecessary options from removeEventListener in the web/app.js file by @Snuffleupagus in #18893
  • Create fewer Objects in PDFViewerApplication.bindEvents by @Snuffleupagus in #18898
  • Reduce duplication when collecting optional content groups by @Snuffleupagus in #18905
  • Handle null parentElement for selection anchor by @hubgit in #18884
  • Add the pdkids PDF document to the repository by @Snuffleupagus in #18902
  • When changing a property on a radio button then change it for the siblings (bug 1922766) by @calixteman in #18916
  • Re-factor the MessageHandler-class event handler function by @Snuffleupagus in #18888
  • Remove event listeners with AbortSignal in the GrabToPan class by @Snuffleupagus in #18919
  • [api-minor] Update the canvas package to version 3 by @Snuffleupagus in #18922
  • Bump library version to 4.8 by @Snuffleupagus in #18924
  • Run CI tests in Node.js version 23 by @Snuffleupagus in #18925
  • Remove the eslint-plugin-{fetch-options,html} and eslint-config-prettier dependencies by @timvandermeij in #18927
  • Update dependencies and translations to the most recent versions by @timvandermeij in #18921
  • Simplify localization of the "default-content" in FreeText editors by @Snuffleupagus in #18920
  • Replace eslint-plugin-sort-exports by eslint-plugin-perfectionist by @timvandermeij in #18929
  • Fix the "Text selection using mouse doesn't jump when hovering on an empty area in a single page" integration test by @timvandermeij in #18923
  • Remove mask-image duplication for the print/download buttons by @Snuffleupagus in #18930
  • Fallback to a standard font if a font-file entry doesn't contain a Stream (issue 18941) by @Snuffleupagus in #18942
  • Try to discourage "unrelated" information under Attach (recommended) or Link to PDF file in the bug report template (PR 18535 follow-up) by @Snuffleupagus in #18940
  • Change the BaseCMapReaderFactory fetch-helper to return a Uint8Array by @Snuffleupagus in #18933
  • Use ImageDecoder in order to decode jpeg images (bug 1901223) by @calixteman in #18910
  • Add a comment in l10n file for the non-standard attribute default-content by @calixteman in #18947
  • Always fill the mask with the backdrop color by @calixteman in #18960
  • Re-factor the ImageResizer._goodSquareLength definition by @Snuffleupagus in #18965
  • [api-minor] Remove the CMapCompressionType enumeration by @Snuffleupagus in #18951
  • Make util.scand a bit more flexible with dates which don't match the given format (bug 1910431) by @calixteman in #18967
  • [Editor] Split the long words when showing the alt-text tooltip (bug 1903588) by @calixteman in #18968
  • Use a BMP decoder when resizing an image by @calixteman in #18918
  • [Editor] Utilize Fluent "better" when localizing the AltText by @Snuffleupagus in #18971
  • Allow StreamsSequenceStream to skip sub-streams that are not actual Streams (issue 18973) by @Snuffleupagus in #18974
  • Improve the implementation of the PDFDocument.fingerprints-getter by @Snuffleupagus in #17862
  • Simplify the "ReaderHeadersReady" message-handler in the API by @Snuffleupagus in #18977
  • [Editor] Refactor the free highlight stuff in order to be able to use the code for more general drawing by @calixteman in #18972
  • Re-factor the toHexUtil helper (PR 17862 follow-up) by @Snuffleupagus in #18978
  • Don't initialize L10n.#elements eagerly since it's unused in MOZCENTRAL builds by @Snuffleupagus in #18979
  • Change the "FetchBuiltInCMap"/"FetchStandardFontData" message-handlers to be asynchronous by @Snuffleupagus in #18983
  • Use the hexNumbers structure in the stringToUTF16HexString helper by @Snuffleupagus in #18993
  • Ensure that serializing of StructTree-data cannot fail during loading by @Snuffleupagus in #18990
  • Inline the flushChunks helper function, used in getPdfManager on the worker-thread by @Snuffleupagus in #18992
  • Move the various DOM-factories into their own files by @Snuffleupagus in #18988

v4.7.76

06 Oct 11:42
8b73b82
Compare
Choose a tag to compare

This release contains improvements for accessibility, the annotation editor, annotation rendering, font conversion, form rendering, text selection, tiling pattern rendering and the viewer.

Changes since v4.6.82

  • Bump the stable version in pdfjs.config by @timvandermeij in #18678
  • [Editor] Make the focused stamp annotation more clear from a screen reader point of view (bug 1911994) by @calixteman in #18664
  • [Editor] Make highlight annotations editable (bug 1883884) by @calixteman in #18427
  • Update dependencies and translations to the most recent versions by @timvandermeij in #18679
  • Use Headers consistently in the different IPDFStream implementations by @Snuffleupagus in #18673
  • [Editor] Make the stamp annotations alt text readable by either VO or NVDA (bug 1912001) by @calixteman in #18658
  • [Editor] Remove the disclaimer when the user is editing the alt-text in the new alt-text modal (bug 1911764) by @calixteman in #18670
  • Improve the StructTreeLayerBuilder.render method by @Snuffleupagus in #18689
  • In the autoprint integration test, resolve the promise on 'afterprint' event by @calixteman in #18690
  • [Editor] Avoid to throw when an highlight annotation is resetted by @calixteman in #18697
  • Make tagged images visible for screen readers (bug 1708040) by @calixteman in #18692
  • Avoid to have a white line around the canvas by @calixteman in #18698
  • Use "full" localization ids in the ColorPicker class (PR 18674 follow-up) by @Snuffleupagus in #18705
  • Use "full" localization ids in the AltText class (PR 18674 follow-up) by @Snuffleupagus in #18706
  • Use response-Headers in the different IPDFStream implementations by @Snuffleupagus in #18682
  • Prevent .visibleMediumView from overriding already hidden elements (issue 18704, PR 18596 follow-up) by @Snuffleupagus in #18707
  • [CRX] Migrate Chrome extension to Manifest Version 3 by @Rob--W in #18681
  • [CRX] Detect availability of DNR responseHeaders before use by @Rob--W in #18711
  • Update dependencies and translations to the most recent versions by @timvandermeij in #18708
  • [JS] Let AFSpecial_KeystrokeEx match a format without 'decoration' (bug 1916714) by @calixteman in #18718
  • [Editor] Avoid to have the ML disclaimer when the ML engine isn't ready (bug 1917543) by @calixteman in #18719
  • [Editor] Avoid to have a stamp editor resizing itself by @calixteman in #18716
  • Remove ununsed static HighlightEditor._l10nPromise field by @Snuffleupagus in #18724
  • Consume any pending path before drawing an annotation by @calixteman in #18726
  • Consider foo-\nBar as a compound word by @calixteman in #18730
  • Ensure that textLayers can be rendered in parallel, without interfering with each other by @Snuffleupagus in #18731
  • [JS] Correctly format floating numbers when they're close to an integer (bug 1918115) by @calixteman in #18737
  • Bump dset from 3.1.3 to 3.1.4 by @dependabot in #18738
  • [Editor] Avoid an extra new line when serializing a FreeText annotation (bug 1897909) by @calixteman in #18740
  • Fluent: use explicit NUMBER() in plural variants by @flodolo in #18741
  • Use the "pageColorsBackground" option as background-color for non-loaded pages (issue 18680) by @Snuffleupagus in #18742
  • [CRX] Enable WebAssembly in Chrome extension by @Rob--W in #18748
  • [CRX] Fix feature detect of DNR responseHeaders option by @Rob--W in #18728
  • [Editor] Take into account the device pixel ratio when drawing an added image by @calixteman in #18749
  • Simplify the code that picks the appropriate NetworkStream-implementation by @Snuffleupagus in #18756
  • Rename the toolbar buttons in order to free their current names by @calixteman in #18757
  • Read a signed integer when using PUSHW in sanitizing a font (bug 1919513) by @calixteman in #18760
  • Fix the rendering of the different separators we've in the UI by @calixteman in #18761
  • Link to the new issue templates from the README (PR 18308 follow-up) by @Snuffleupagus in #18763
  • Ignore non-existing /Shading resources during parsing (issue 18765) by @Snuffleupagus in #18766
  • Use fs/promises in the Node.js unit-tests (PR 17714 follow-up) by @Snuffleupagus in #18772
  • Update dependencies and translations to the most recent versions by @timvandermeij in #18771
  • [api-minor] Pass CanvasFactory/FilterFactory, rather than instances, to getDocument by @Snuffleupagus in #18776
  • Bump library version to 4.7 by @Snuffleupagus in #18777
  • [Editor] Don't show the ml toggle button when the ml is disabled (bug 1920515) by @calixteman in #18779
  • Refactor the toolbar html & css to improve its overall accessibility (bug 1171799, bug 1855695) by @calixteman in #18385
  • Update typescript to version 5.6.2 by @timvandermeij in #18781
  • Remove useless css variable --editor-toolbar-base-offset by @calixteman in #18783
  • Remove duplicated --toolbar-height definition in the css by @calixteman in #18784
  • Correctly compute the font size when printing a text field with an auto font size (bug 1917734) by @calixteman in #18790
  • Increase the size of the toolbar depending on the uidensity (bug 1171799) by @calixteman in #18786
  • Add Calixte to the list of authors by @sylvestre in #18791
  • Remove the unused splitToolbarButton CSS class (PR 18385 follow-up) by @Snuffleupagus in #18795
  • Unify separate #toolbarContainer-blocks in the CSS (PR 18385 follow-up) by @Snuffleupagus in #18796
  • Fix the rendering of tiling pattern when the steps are lower than the tile dimensions (bug 1837738) by @calixteman in #18798
  • Slightly re-factor the transportFactory initialization in getDocument by @Snuffleupagus in #18785
  • Remove trackTransform arguments from CachedCanvases.getCanvas-calls (PR 15281 follow-up) by @Snuffleupagus in #18799
  • Add basic support for non-embedded GillSansMT fonts (issue 18801) by @Snuffleupagus in #18802
  • [Editor] When deleting an annotation with popup, then delete the popup too by @calixteman in #18800
  • [Editor] Avoid to have a selected stamp annotation on top of the secondary toolbar (bug 1911980) by @calixteman in #18793
  • Ensure that the CursorTools-buttons are disabled e.g. during editing (PR 15522 follow-up) by @Snuffleupagus in #18812
  • [api-minor] Update the minimum supported Google Chrome version to 103 by @Snuffleupagus in #18822
  • Re-factor how PDFLayerViewer decides if the UI needs to updated on "optionalcontentconfigchanged" events by @Snuffleupagus in #18829
  • Make the secondary menu button usable with the keyboard when NVDA is enabled by @calixteman in #18830
  • Write the display flags in F entry when saving an annotation (issue 18072) by @calixteman in #18824
  • Fix toolbarViewer/toolbarContainer regressions (PR 18385, 18786 follow-up) by @Snuffleupagus in #18831
  • [Editor] Add the possibility to save an updated stamp annotation (bug 1921291) by @calixteman in #18805
  • [GV] Increase the height (48px) of the toolbar in order to fit the a11y recommendations (bug 1838602) by @calixteman in #18837
  • [Editor] Make the editor deserialization async by @calixteman in #18843
  • Remove the PDFViewer.annotationEditorMode setter event listeners with AbortSignal.any() by @Snuffleupagus in #18842
  • [Editor] Make stamp annotations editable (bug 1921291) by @calixteman in https://github.com/mozilla/pdf.js/pul...
Read more