> 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-12/v8-12-0.md).

# Version 8.12.0 Changelog (2023-02-17)

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

## WebViewer Core

### New

* Added more event sources for `annotationChanged` event.
* Added [`SignatureCreateTool.SigningModes`](https://sdk.apryse.com/api/web/Core.Tools.SignatureCreateTool.html#.SigningModes__anchor), [`SignatureCreateTool.setSigningMode`](https://sdk.apryse.com/api/web/Core.Tools.SignatureCreateTool.html#setSigningMode__anchor), [`SignatureCreateTool.getSigningMode`](https://sdk.apryse.com/api/web/Core.Tools.SignatureCreateTool.html#getSigningMode__anchor) to enable signing by appearance.
* Added support for `Content-Security-Policy` without `script-src blob:` by adding the `disableObjectURLBlobs` argument in the WebViewer constructor.
* Updated `DocumentViewer.setWatermark` to return a promise that resolves when the watermark has been applied.
* Added new warning messages when incorrect input types are entered for specific APIs.
* Updated `documentViewer.loadAsync` to be deprecated in favor of `documentViewer.loadDocument`.
* Added performance improvements when drawing measurement annotations with caption disabled.
* Added error message for Digital Signature Verification permission.
* Added a mobile long tap event, equivalent to the desktop right-click event.
* Added support for JavaScript actions in Outlines for PDF and XOD.
* Updated pre-rendering cache default level to 10 and enabled pre-rendering while in viewport mode to improve scrolling behavior.
* Added an API for clearing signatures from signature widgets so they can be signed again. [`SignatureWidgetAnnotation.clearSignature`](https://sdk.apryse.com/api/web/Core.Annotations.SignatureWidgetAnnotation.html#clearSignature__anchor).

### Fixes

* Fixed missing signature in page extraction.
* Fixed issue where annotation changes get reverted when using WebViewer Server.
* Fixed issue where new area measurement annotations captions were not being rotated according to the current page rotation.
* Fixed issue with too many link annotations being created in some cases.
* Fixed widgets not being imported correctly when using the `setDocumentXFDFRetriever` API.
* Fixed rotate button not working when moving multiple annotations.
* Fixed loading image documents not triggering XFDF retrieval functions.
* Fixed specific editing features not working with license keys.
* Fixed lists getting auto-formatted when using FreeTexts and in content edit mode.
* Fixed issue where "Screen" type annotations inside the document didn't import the ID correctly.
* Fixed issue with `LineEndType` not having "None" in XFDF.
* Fixed issue where images would interfere with interacting with edit boxes.
* Fixed issue where required flag in signature was not handled correctly.
* Fixed issues with redaction tool functions that weren't exposed properly.
* Fixed issue with opening automatic links with line breaks.
* Fixed issue with font substitution API when using Firefox.
* Fixed issue causing file attachments with non-icon appearances to appear as icons.
* Fixed issue where WebViewer watermark appeared in Salesforce integration.
* Fixed issue where the page scroll was not smooth when using stylus mode.
* Fixed issue where not all semantic text compare annotations would appear in the change list.
* Fixed issue with replies being lost when moving an annotation across pages.
* Fixed hard to see checkboxes and radio button styling in Read-Only mode.

## WebViewer UI

### New

* Added saving of user preferences in Settings modal.
* Added new API for exporting and importing user settings ([`UI.exportUserSettings`](https://sdk.apryse.com/api/web/UI.html#.exportUserSettings__anchor) and [`UI.importUserSettings`](https://sdk.apryse.com/api/web/UI.html#.importUserSettings__anchor)).
* Added button for clearing signature widgets that are signed by appearance.
* Added new [`UI.setGrayscaleDarknessFactor`](https://sdk.apryse.com/api/web/UI.html#.setGrayscaleDarknessFactor__anchor) API to tweak the darkness of grayscale prints.
* Updated UI of the list of users when using mentions in the Comments Panel.
* Updated page replace modal to select all pages by default.

### Fixes

* Fixed controls overlay to work with MultiViewerMode.
* Fixed `scaleOverlayContainer` being unable to be disabled.
* Fixed issue where new content was not being inserted in the correct spot in Edit mode, after rotating a page using the tools in the thumbnails panel.
* Fixed error being thrown when updating scale after calibration.
* Fixed missing translation in the signature panel.
* Fixed incorrect Polish translations.
* Fixed the issue of incorrect text when using createToolbarGroup multiple times.
* Fixed the issue with notes not focusing on the left panel.
* Fixed signature verification date format where single digits are not prefixed with a zero.
* Fixed missing translations for semantic text compare.
* Fixed issue where semantic compare change list items could go to the wrong result when searching within the change list.
* Fixed issue where `documentViewer.enableReadOnlyMode` API doesn't disable page manipulation features from the thumbnail panel.
* Fixed issue causing copy and pasting to not work in the Notes Panel.
* Fixed UI Loading issues in IOS 12.
* Fixed missing TypeScript definition for `enableFeatures`.
* Fixed issue where printing documents with large page sizes and thin lines made it difficult to see the lines.
* Fixed Chrome adding extra pages when printing.
* Fixed issue with print in grayscale checkbox being disregarded.


---

# 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-12/v8-12-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.
