> 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-7/v7-1/v7-1-0.md).

# Version 7.1.0 Changelog (2020-09-21)

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

## WebViewer Core

### New

* Form fields can now be [edited directly inside the document](/web/forms/modify-fields.md). Added a [WidgetEditingManager](https://sdk.apryse.com/api/web/Core.FormFieldCreationManager.html) which provides APIs and events for this and a default UI has also been added.
* Added the ability to [rotate point based annotations](/web/annotation/freeform-rotation.md) (line, polyline, polgyon and freehand). A new rotation control point will appear when selecting these types of annotations. It can be disabled with the [setRotationControlEnabled](/web/annotation/freeform-rotation.md#disabling-freeform-rotation) API.
* Added support for automatically linkifying text inside documents that contain with text that looks like URLs. This can be disabled by calling [`docViewer.setEnableAutomaticLinking(false)`](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#setEnableAutomaticLinking__anchor) and the current value can be read from [isAutomaticLinkingEnabled](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#isAutomaticLinkingEnabled__anchor). You can check if a link was automatically added by calling [`link.isAutomaticLink()`](https://sdk.apryse.com/api/web/Core.Annotations.Link.html#isAutomaticLink__anchor).
* Added a [function on tools](https://sdk.apryse.com/api/web/Core.Tools.AnnotationEditTool.html#setEnableImmediateActionOnAnnotationSelection__anchor) to immediately allow dragging of annotations on mouse down (without first selecting the annotation).
* Added the ability to copy an annotation by holding alt while clicking and dragging a selected annotation
* Added [annotManager.bringToFront](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#bringToFront__anchor) and [annotManager.bringToBack](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#bringToBack__anchor) to have the particular annotation be drawn on top or underneath of all other annotations
* Added [Annotations.setCustomDrawHandler](https://sdk.apryse.com/api/web/Core.Annotations.html#.setCustomDrawHandler__anchor) to more easily customize the drawing of annotations without modifying the prototype
* Added [Annotations.setCustomSerializeHandler](https://sdk.apryse.com/api/web/Core.Annotations.html#.setCustomSerializeHandler__anchor) and [Annotations.setCustomDeserializeHandler](https://sdk.apryse.com/api/web/Core.Annotations.html#.setCustomDeserializeHandler__anchor) to more easily customize the serialization of annotations without modifying the prototype
* Improved the performance of loading documents with many (ten thousand or more) pages
* Improved the performance of loading images directly
* Added [fieldManager.updateFieldName](https://sdk.apryse.com/api/web/Core.Annotations.Forms.FieldManager.html#updateFieldName__anchor) which allows you to update the name of a field
* Added width and height options to [loadCanvasAsync](https://sdk.apryse.com/api/web/Core.Document.html#loadCanvasAsync__anchor) which can be used instead of the `zoom` option to determine the output canvas size
* Added the [setEnableAutoSized](https://sdk.apryse.com/api/web/Core.Tools.CalloutCreateTool.html#setEnableAutoSized__anchor) function on the CalloutCreateTool to allow Callout annotations to automatically resize. The auto size width can also be controlled from the [CalloutCreateTool defaults](https://sdk.apryse.com/api/web/Core.Tools.CalloutCreateTool.html#CalloutCreateTool__anchor)
* Added [annotManager.deselectAnnotations](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#deselectAnnotations__anchor) which can deselect multiple annotations at once
* Added [docViewer.getPageSearchResults](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#getPageSearchResults__anchor) which returns the search results currently found by DocumentViewer
* Added the [searchResultsChanged event](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#event:searchResultsChanged__anchor) that is fired when the search results are updated
* Added the [getStartStyle](https://sdk.apryse.com/api/web/Core.Annotations.PolylineAnnotation.html#getStartStyle__anchor), [setStartStyle](https://sdk.apryse.com/api/web/Core.Annotations.PolylineAnnotation.html#setStartStyle__anchor), [getEndStyle](https://sdk.apryse.com/api/web/Core.Annotations.PolylineAnnotation.html#getEndStyle__anchor) and [setEndStyle](https://sdk.apryse.com/api/web/Core.Annotations.PolylineAnnotation.html#setEndStyle__anchor) APIs on polyline annotations
* Update FreeText autosizing so that it is maintained even after reloading the document
* Added a [layersUpdated event](https://sdk.apryse.com/api/web/Core.Document.html#event:layersUpdated__anchor) on the Document object which is fired when layer visibility changes
* Increased the default font size for FreeText and Callout annotations
* Updated lodash dependency to the latest version

### Fixes

* Fixed issue where signature widget in read only mode was still clickable
* Fixed issue where embedded JS print function wasn't triggered properly
* Fixed issue where file attachments imported without NoZoom wouldn't display in the correct location
* Fixed issue where double clicking a freetext annotation where there is text underneath would select the text instead
* Fixed issue where annotations weren't flagged as modified when changing the Id, PageNumber or Author
* Fixed issue where `Core.Search.WHOLE_WORD` was not set correctly
* Fixed issue where the `renderRect` option in [loadCanvasAsync](https://sdk.apryse.com/api/web/Core.Document.html#loadCanvasAsync__anchor) wasn't working properly
* Fixed issue where the eraser tool wasn't always able to erase sticky annotations
* Fixed issue where the crop tool was updating the AnnotationHistoryManager stack
* Fixed issue where the AnnotationHistoryManager stack wasn't being cleared when loading a new document
* Fixed several inconsistencies in the TypeScript declaration file
* Fixed issue where certain formats didn't work with the form field date picker
* Fixed issue where FreeText annotations were not editable after rotating pages
* Fixed issues with ellipse measurements not being updated in all cases
* Fixed issue where signature annotations were becoming associated with signature widgets on a different page in some cases

## WebViewer UI

### New

* Added a [form editing button](/web/forms/modify-fields.md) which uses the new [WidgetEditingManager APIs](https://sdk.apryse.com/api/web/Core.FormFieldCreationManager.html)
* Added [reader mode](/web/advanced/reader-mode.md) which allows users to read documents more easily, similar to an e-book reader
* Added a line connecting the comment in the notes panel with the annotation on the page when the annotation is selected.
* Added an experimental [text editing button](/web/edit-page-content/text-edit.md) that allows users to edit selected text
* Added handler for the embedded JavaScript print API
* Added [setPrintedNoteDateFormat](https://sdk.apryse.com/api/web/WebViewerInstance.html#setPrintedNoteDateFormat__anchor) which sets the format for displaying the date when a note is printed
* Added a `notesInLeftPanel` option to the WebViewer constructor which moves the notes panel from the right side to the left
* Added a `selectAnnotationOnCreation` option to the WebViewer constructor which automatically selects annotations when they are created
* Added print quality option in the print modal to allow printing at high quality
* Added the [printInBackground](https://sdk.apryse.com/api/web/WebViewerInstance.html#printInBackground__anchor) API which allows you to triggering printing without opening the print modal
* Added new sort and filter options for notes
* Improved translations for several languages

### Fixes

* Fixed issue where the menu overlay closes when hovering over text
* Fixed issue where password modal does not close when error modal appears
* Fixed issue where properties of buttons in the menu overlay couldn't be customized
* Fixed issue where tall modals were not scrollable on small screens
* Fixed missing data elements for buttons in menu overlay
* Fixed issue where notes could be overlapping
* Fixed issue with stroke thickness for signatures
* Fixed issue where note state was not disabled in readonly mode
* Fixed various styling issues


---

# 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-7/v7-1/v7-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.
