> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/web/changelogs/version-8/v8-1/v8-1-0.md).

# Version 8.1.0 Changelog (2021-09-08)

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

## WebViewer Core

### New

* Added new APIs to make Measurement annotations easier to change and use programmatically:
  * annotations\[0].Scale: Gets/sets the scale of the measurement annotation
  * annotations\[0].DisplayUnits : Gets/sets the units displayed on the measurement annotation
  * annotations\[0].DisplayFormat: Gets/sets how the measurement will be displayed (fraction, round, decimal, truncate)
  * annotations\[0].System: Gets/sets the system used in the measurement (metric, imperial, typographic)
* Added enums to remove guesswork for units/systems/formats Examples
  * instance.Core.Annotations.Annotation.MeasurementUnits.CM: will result in cm
  * instance.Core.Annotations.Annotation.MeasurementSystems.METRIC: will result in Metric
  * instance.Core.Annotations.Annotation.DisplayFormats.ROUND: will result in Round
* Added API to enable arrow key navigation between pages [`DocumentViewer.enableArrowKeyNavigation`](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#enableArrowKeyNavigation)
* Added API to disable arrow key navigation between pages [`DocumentViewer.disableArrowKeyNavigation`](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#disableArrowKeyNavigation)
* Added support for annotation rollover appearances
* Added a new event called [`annotationsDeselected`](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#event:annotationDeselected). Triggered when annotations are deselected.
* Improved comb spacing behaviour for TextWidgets
* Added support for custom annotation rotation
* Added authentication support for documents with password, when using WebViewer Server.
* Added new sample showcasing table extraction with the use of Apryse.AI
* Added API [`getAuthId`](https://sdk.apryse.com/api/web/Core.Document.html#getAuthId) for current server document
* Extended the support for custom appearances (appearance streams embedded in xfdf) to WebViewer.
* Updated the version of `PDFNet` used to version 9.1. All Apryse SDK 9.1 APIs are available with the full API.

### Fixes

* Fixed issue where XOD would not render correctly when loading as a blob
* Fixed issue with saving documents when using the threaded worker
* Fixed issue where an error was thrown when using setStyles and trying to set FontSize with a number instead of a string.
* Fixed issue where importing custom signatures would cause an error due to timing issues.
* Fixed an issue where text was selectable on a layer that was hidden
* Fixed issue where an error could be thrown after adding an annotation on the last page and then deleting that page
* Fixed issue when importing rotated FreeText with an angle that was a multiple of 45

#### Security

* Fixed issue where it was possible for certain PDF links to be created in a way that potentially unsafe code could be run when the link was clicked on. The fix has also been merged to 8.0, 7.3 and 6.3 [stable nightly builds](/web/get-started/faq/webviewer-nightly-build.md)

## WebViewer UI

### New

* Added new Page Manipulations Overlay Panel to the page thumbnails, with operations such as rotate, insert, extract, and delete pages in one simple panel.
* Added the [`UI.PageManipulationOverlay`](https://sdk.apryse.com/api/web/UI.PageManipulationOverlay.html#main) API to customize the Page Manipulation Overlay Panel, allowing users to add new operations, remove existing ones, and reorganize the operations.
* UI changes to the signature panel:
  * Changed draw signature modal's buttons to disabled state if there is no input
  * Changed type signature modal's buttons to disabled state if there is no input
  * Changed upload signature modal's buttons to disabled state if there is no input
  * Removed "sign here" on draw signature modal if there is input
* Added new option to filter comments based on the reply author
* Improved the overall experience of scrolling through thumbnails in the thumbnails panel
* By default notes will now be shown sorted by creation date, instead of by the date of the latest reply. This behaviour can be changed with the [enableFeatures API](https://sdk.apryse.com/api/web/UI.html#.enableFeatures)
* The line measurement tools now support imperial marks with [`enableImperialMarks`](https://sdk.apryse.com/api/web/Core.Tools.DistanceMeasurementCreateTool.html#enableImperialMarks)

### Fixes

* Fixed issue where the checked SVG was not being applied on the refresh function for the checkbox widget when the value of the field was set to Off after the click event.
* Fixed issue where fields with a COMB property where not being printed with the correct spacing
* Various fixes to the way signature certificates are verified and displayed in the UI
* Fixed issue where files containing "%" could not be loaded into the viewer
* Fixed issue where text was not selectable in the notes panel
* Fixed an issue on small screen size, even if disabled the toolheader will always appear
* Various fixes to the thumbnail panel


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apryse.com/web/changelogs/version-8/v8-1/v8-1-0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
