This release features improved text layer rendering (so words and whitespace better match the rendered page), improved accessibility support (for marked PDF files with structure information for screen readers), improved shading/tiling pattern rendering, displaying of digital signatures (but not verifying them), improved XFA support (which is still experimental), improved rendering of annotations without appearance streams and other bugfixes mainly regarding annotations, font rendering and scripting.
Changes since v2.8.335:
#13183 Bump versions in pdfjs.config
#13184 Convert objects to sets in places where we only track keys
#13186 Remove some deprecated
code
#13194 Fuzzy-match the fontName, for TrueType Collection fonts, where the "name"-table is wrong (issue 13193)
#13204 Fix typo in canvas.js
#13210 Cache babel source map.
#13209 Remove the enableScripting
option from the PDFPageView
constructor
#13207 [api-minor] Remove the manual passing of an AnnotationStorage
-instance when calling various API-method
#13171 [api-minor] Add support for basic structure tree for accessibility.
#13197 Improve the image quality of thumbnails rendered by PDFThumbnailView.draw
(issue 8233)
#13212 Check that the correct pdfDocument
is still active, before rendering the outline/attachments/layers
#13214 Display widget signature
#13216 Remove obsolete done callbacks from the unit tests
#13220 Ensure that currentOutlineButton
enabling/disabling won't depend on the exact timing of the "pagesloaded" event (PR 13212 follow-up)
#13221 [api-minor] A couple of smaller PDFPageProxy.getStructTree
fixes (PR 13171 follow-up)
#13217 [GENERIC viewer] Display a warning message, using the errorWrapper
, for documents with signatures (PR 13214 follow-up, issue 13215)
#13141 XFA -- Display text content
#13203 Implement high contrast mode
#13223 Remove the unused "GetIsPureXfa" message handler; and avoid unnecessary parsing when no structTree is available (PR 13069 follow-up, PR 13221 follow-up)
#13232 Fix annotation input focus trap regression in Safari
#13234 [api-minor] Ensure that PDFDocumentProxy.hasJSActions
won't fail if MissingDataException
s are thrown during the associated worker-thread parsing
#13235 Split the classes in src/core/obj.js
into separate files
#13238 Update the es-module-shims
package to the latest version
#13244 Update the postcss-calc
package to the latest version
#13240 Update eslint-config-prettier
/eslint-plugin-unicorn
packages to their latest versions
#13222 Convert done callbacks to async/await in the smaller unit test files
#13243 Implement visibility expressions for optional content
#13246 Convert done callbacks to async/await in more unit test files
#13247 Update the yargs
package to the latest version
#13249 [GENERIC viewer] Don't display the errorWrapper
, for documents with signatures (PR 13217 follow-up)
#13250 Remove the PDFViewerApplication._delayedFallback
functionality
#13146 XFA -- Load fonts permanently from the pdf
#13254 A couple of small scripting/XFA-related tweaks in the worker-code
#13253 Convert done callbacks to async/await in test/unit/api_spec.js
#13258 Update packages and translations
#13256 Convert done callbacks to async/await in the last two unit test files
#13275 Ensure that the /Properties, used with optional content, is actually loaded before parsing the operatorList/textContent (PR 12095 follow-up)
#13278 Add presentation role to text layer spans.
#13277 For CFF fonts without proper ToUnicode
/Encoding
data, utilize the "charset"/"Encoding"-data from the font file to improve text-selection (issue 13260)
#13263 Replace done
callbacks in the font-tests with async/await instead
#13282 Update Puppeteer to version 9
#13280 Ensure that saveDocument
works if there's no /ID-entry in the PDF document (issue 13279)
#13286 [JS] Use heap allocation when initializing quickjs sandbox
#13283 Change NameOrNumberTree.getAll
to return a Map
rather than an Object
#13272 Update all the text widgets having the same name with the same value
#13291 Replace a bunch of Array.prototype.forEach()
cases with for...of
loops instead
#13297 Add a note about minification to the webpack-example README (issue 13290)
#13294 Enable the no-var
linting rule in src/core/{cmap,image,worker}.js
#13301 Support InkAnnotation
s without appearance streams (issue 13298)
#13300 Convert the code in src/display/canvas.js
to use standard classes
#13304 Convert more code in src/core/
to use standard classes
#13305 Implement rendering polyline/polygon annotations without appearance stream
#13306 Fix position of highlighted all text.
#13314 For mozcentral use Firefox color theme instead of system theme.
#13310 Don't try to insert a structTree in a removed page (PR 13171 follow-up)
#13257 [api-minor] Fix the way to chunk the strings
#13303 Add an abstract base-class, which all the various Stream implementations inherit from
#13322 Update packages and translations
#13320 Add a new BaseStream.getString(...)
method to replace manual bytesToString(BaseStream.getBytes(...))
calls
#13321 Enable the no-var
linting rule in src/core/{crypto,function}.js
#13324 Fix highlighting of search results when the textLayer
contains br
-elements (PR 13257 follow-up, issue 13323)
#13319 JS -- add support for page property in field
#13274 [JS] Fix several issues found in pdf in #13269
#13333 [web/debugger.js] Enable the ESLint no-var
rule
#13337 [Regression] Move the super
-call in the PredictorStream
-constructor to prevent errors (PR 13303)
#13340 Fix integration test in the windows bot
#13339 Remove unnecessary closure in src/display/text_layer.js
, and use standard classes
#13327 Split the functionality in src/core/fonts.js
into multiple files, and use standard classes
#13349 Bump lodash from 4.17.19 to 4.17.21
#13341 Remove unnecessary closure in the src/core/font_renderer.js
file
#13352 Bump hosted-git-info from 2.6.0 to 2.8.9
#13338 Convert the src/core/{jbig2, jpg, jpx}.js
files to use standard classes
#13344 Enable the no-var
rule in the src/core/evaluator.js
file
#13350 Add option enableXfa to the viewer
#13347 Take the W
array into account when computing the hash, in PartialEvaluator.preEvaluateFont
, for composite fonts (issue 13343)
#13354 Export the "raw" toUnicode-data from PartialEvaluator.preEvaluateFont
#13355 Fix some integration tests
#13357 Remove the disableCanvasToImageConversion
functionality from PDFThumbnailView
(PR 7029 follow-up)
#13358 [api-minor] Remove the WebGL implementation
#13364 Clean-up usage of the TESTING
-define in src/pdf.sandbox.js
#13363 Prevent LGTM from complaining about useless assignments (PR 12562 follow-up)
#13368 Fix the Jbig2Image
export for the gulp image_decoders
build (PR 9729 follow-up, issue 13367)
#13360 Only include the renderer
-preference in builds where SVGGraphics
is defined
#13366 Convert the remaining functions in src/core/primitives.js
to use standard classes
#13361 Fix several issues with radial/axial shadings and tiling patterns.
#13371 Revert "Fix the remaining no-var
failures, which couldn't be handled automatically, in the src/core/evaluator.js
file" (PR 13344 follow-up)
#13369 Fix tiling pattern with smask.
#13375 Improve the Page.content
and Page.getContentStream
methods
#13377 Re-factor and convert the code in src/core/pattern.js
to use standard classes
#13379 [api-minor] Update minimum supported browser versions (PR 13361 follow-up)
#13383 Update packages and translations
#13380 Re-factor and convert the code in src/display/pattern_helper.js
to use standard classes
#13385 Convert src/core/operator_list.js
to use standard classes
#13386 Enable the no-var
linting rule in src/core/bidi.js
#13387 Fix a few safe ESLint no-var failures in src/core/evaluator.js
(13371 follow-up)
#13328 JS - Add support for display property
#13389 Get any width (if one is present) in CFF parser
#13390 XFA - Don't move glyphes in private area with non-truetype fonts
#13394 Handle PI with no value in xml parser
#13401 Remove some, with Prettier 2.3.0
, unnecessary // prettier-ignore
comments
#13408 Remove focus from the zoom dropdown, when a mouse is used (bug 1300525, issue 4923)
#13415 Improve handling of named destinations in out-of-order NameTrees (PR 10274 follow-up)
#13416 XFA - Fix wrong function name
#13419 Use the stringToBytes
helper function in more places
#13381 Handle errors gracefully, in PartialEvaluator.buildFontPaths, when glyph path building fails
#13417 [XFA] Send URLs as strings, rather than objects (issue 1773)
#13420 Drop obsolete logic from the downloadFile
function in test/downloadutils.js
#13421 XFA - Don't display images with a href
#13402 XFA - Fix lot of layout issues
#13429 Bump browserslist from 4.16.3 to 4.16.6
#13436 Re-factor FontFaceObject.getPathGenerator to use Arrays instead of strings
#13435 Enable the unicorn/no-array-push-push
ESLint plugin rule
#13445 Fix Postscript name in font to avoid bug when saving in pdf
#13450 Fix the JSDocs for PDFDocumentProxy.getPageIndex
(issue 13449)
#13455 Italic angle is defined clockwise in CSS when it's counterclockwise in PDF
#13456 Replace clazz by classNames
#13427 XFA - Add a storage to save fields values
#13443 Re-factor the charsCache
on Font
-instances
#13457 Work-around for HighlightAnnotations without a top-level /ExtGState-entry (issue 13242)
#13448 Support strokeAlpha/fillAlpha when creating a fallback appearance stream (issue 6810)
#13460 Update webpack import instructions
#13462 Update packages and translations
#13463 Bump ws from 7.4.5 to 7.4.6