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

# Version 8.2.0 Changelog (2021-11-26)

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

## WebViewer Core

### New

* Added optimizations to greatly improve speed of searching PDF files
* Added support for annotation snap rotation when holding the shift key
* Added optimizations to improve the speed of loading linearized PDF files
* Added support for importing and exporting inline appearance data with XFDF
* Added support for displaying text as justified inside a FreeText annotation using `freeText.textAlign = 'justify'`
* Updated behavior so that moving an annotation to the edge of the viewport will automatically scroll the viewport
* Added `DateFreeTextCreateTool` which lets the user create a FreeText annotation that is flagged as a "date" type. The default WebViewer UI will show a date picker when it is being edited.
* Added the `getDateFormat` and `setDateFormat` APIs on FreeText annotations to determine the date format associated with them (if applicable).
* Added [setStampText](https://sdk.apryse.com/api/web/Core.Annotations.StampAnnotation.html#setStampText__anchor) and [getStampText](https://sdk.apryse.com/api/web/Core.Annotations.StampAnnotation.html#getStampText__anchor) APIs for getting and setting stamp text
* Added `checkIfBaseColorsUsed` option when using [enableColorSeparations](https://sdk.apryse.com/api/web/Core.Document.html#enableColorSeparations__anchor)
* Added [enableReadOnlyMode](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#enableReadOnlyMode__anchor) and [disableReadOnlyMode](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#disableReadOnlyMode__anchor) API for documentViewer
* Added support for custom annotation appearances with WebViewer Server
* Added [Core.syncNamespaces](https://sdk.apryse.com/api/web/Core.html#.syncNamespaces__anchor) API easily sync namespaces from multiple WebViewer instances for easier interoperability between them
* Added [disableAutoFocusOnCreate](https://sdk.apryse.com/api/web/Core.Tools.FreeTextCreateTool.html#disableAutoFocusOnCreate__anchor), [enableAutoFocusOnCreate](https://sdk.apryse.com/api/web/Core.Tools.FreeTextCreateTool.html#enableAutoFocusOnCreate__anchor), and [isAutoFocusingOnCreate](https://sdk.apryse.com/api/web/Core.Tools.FreeTextCreateTool.html#isAutoFocusingOnCreate__anchor) API to the FreeTextCreateTool to allow FreeText annotations to be created by a user without autofocusing them
* Added [embeddedThumbnailComplete](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#event:embeddedThumbnailComplete__anchor) event which is fired when a thumbnail from a viewer optimized PDF is loaded
* Added client side support for `.jfif` and `.tiff` files
* Updated the appearance of "readOnly" radio buttons
* Added new [enableTextSelection](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.enableTextSelection__anchor), [disableTextSelection](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.disableTextSelection__anchor), [enableAutoSwitch](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.enableAutoSwitch__anchor), [disableAutoSwitch](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.disableAutoSwitch__anchor), [enableAnnotationHoverCursors](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.enableAnnotationHoverCursors__anchor), [disableAnnotationHoverCursors](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.disableAnnotationHoverCursors__anchor), [allowAnnotationsOutsidePage](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.allowAnnotationsOutsidePage__anchor), and [disallowAnnotationsOutsidePage](https://sdk.apryse.com/api/web/Core.Tools.Tool.html#.disallowAnnotationsOutsidePage__anchor) APIs for controlling tools
* Added new `CROP_CANCELLED` Event on [CropCreateTool](https://sdk.apryse.com/api/web/7.3/Tools.CropCreateTool.html)
* Changed Text Annotations (eg. TextHighlightAnnotation, TextUnderlineAnnotation) to no longer store the annotated text as the annotation content by default. The annotated text is now stored as custom data with a tag "trn-annot-preview" in order to provide a more streamlined view in the notes panel, and improve the commenting flow. To revert this behaviour and store the selected text as the annotation's content, set the [AUTO\_SET\_TEXT](https://sdk.apryse.com/api/web/Core.Tools.TextAnnotationCreateTool.html#.AUTO_SET_TEXT) property to true for the TextAnnotationCreateTool.

### Fixes

* Fixed issue with userName property in embedded JS
* Fixed issue with auto sizing FreeText annotations on rotated pages
* Fixed issue with line annotations being offset in particular cases
* Fixed issue with transparent annotations displaying incorrect rotation
* Fixed issue with flickering when switching pages in single page mode
* Fixed issue with `DoNotScroll` field flag not working
* Fixed issue with text field with multiple lines
* Fixed issue with annotation resizing when dragging
* Fixed issue where copied annotation was pasted on top of other copied annotations
* Fixed issue where an annotation Rect without any values was causing problems
* Fixed issue where annotation rotation was not working with `immediateActionOnAnnotationSelection` create tool option
* Fixed issue with FreeText annotation text going outside of the page in some cases
* Fixed issue that prevented loading documents without "http\://" prefix
* Fixed issue with signature widget "Sign Here" text being visible in some cases even when it has a signature
* Fixed issue with text alignment for rich text
* Fixed issue with using `exportAnnotCommand` with undo and redo
* Fixed issue with text not wrapping as expected inside a FreeText with richtext content
* Fixed issue where text widget wouldn't update display when the `readonly` property changed
* Fixed issue with text not fitting inside text widgets

## WebViewer UI

### New

* Added UI controls to change the FreeText font, vertical and horizontal text alignment and rich text styles from the annotation style menu
* Added the ability to replace pages in the thumbnail panel
* Added [new panel for displaying PDF file attachments](/web/get-started/faq/file-attachment-list.md)
* Added [getWatermarkModalOptions](https://sdk.apryse.com/api/web/UI.html#.getWatermarkModalOptions__anchor) API for getting the watermark options that may have been set by the printing watermark modal
* Enabled the page rotation button for XOD files which will perform a visual page rotation
* Added a replies count in the notes panel
* Added new icons for "filter" and "reply" in the notes panel
* Added new [toolbarGroupChanged](https://sdk.apryse.com/api/web/UI.html#event:toolbarGroupChanged) event
* Updated dropdown and overlays to automatically close when loading a new document or clicking outside the element
* Added ability to support custom elements in menu overlay
* Added new [`thumbnailDragged`](https://sdk.apryse.com/api/web/UI.html#event:thumbnailDragged) and [`thumbnailDropped`](https://sdk.apryse.com/api/web/UI.html#event:thumbnailDropped) events for thumbnail panel
* Added the `outlineBookmarksChanged` event that is fired when a bookmark changes in the outlines panel
* Added the `fullscreenModeToggled` event that is fired when fullscreen mode is toggled
* Added new Date tool in the fill and sign toolbar
* Updated sorting by dates in the notes panel. Can now sort by both creation date and modified date.
* Updated notes panel to now display rich text used in annotations as well as their text color.
* Improved several language translations
* Updated the comments panel, now annotated text of text annotations are shown as preview by default

### Fixes

* Fixed issue where loading a new document didn't clear text search
* Fixed custom content overlay positioning
* Fixed issue with popup showing up when editing text in FreeText annotation
* Fixed styling issue with the loading icon not disappearing when digital signature was loaded


---

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