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

# Version 7.0.0 Changelog (2020-07-23)

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

## Breaking changes

See [v7 migration guide](/web/migration-guides/migrating-to-v7.md) for information on the breaking changes.

* A new and improved default UI that is structured a bit differently. The previous UI is still accessible with the constructor option `ui: 'legacy'`.
* All APIs now take 1-indexed page numbers. Previously some APIs would take 0-indexed page numbers.
* [Search constants](https://sdk.apryse.com/api/web/Core.Search.html) have been moved to the CoreControls namespace.
* PartRetriever classes can no longer be access directly, they should be used through the [getPartRetriever API](https://sdk.apryse.com/api/web/Core.PartRetrievers.html#getPartRetriever__anchor)
* A few rarely used CanvasManager APIs have been removed: `Core.CanvasMode`, `Core.setCanvasMode`, `DocumentViewer.setPagesPerCanvas`, `DocumentViewer.returnCanvas`

## WebViewer Core

### New

* Added support for threaded WebAssembly. This means performance improvements by being able to render and process document pages and actions in parallel.
* Added a text comparison sample which shows how you can compare changes in the text of two different documents.
* Updated the RubberStampCreateTool to allow the [creation of custom stamps](https://sdk.apryse.com/api/web/Core.Tools.RubberStampCreateTool.html#addCustomStamp__anchor).
* Updated the RubberStampCreateTool to allow setting a list of [default stamps](https://sdk.apryse.com/api/web/Core.Tools.RubberStampCreateTool.html#setStandardStamps__anchor) and [custom stamps](https://sdk.apryse.com/api/web/Core.Tools.RubberStampCreateTool.html#setCustomStamps__anchor). These lists are used by default in the UI.
* Added a count measurement tool which will track the number of count annotations on the document.
* Properties and constants now consistently use the same casing throughout the WebViewer APIs. For example `Namespace.MY_CONSTANT`. The previous casings still remain for backwards compatibility.
* Added [APIs to allow a custom appearance](https://sdk.apryse.com/api/web/Core.Annotations.Annotation.html#addCustomAppearance__anchor) to be set on annotations when the PDF is downloaded
* Part retrievers are now split out from CoreControls.js and lazy loaded when needed.
* Added support for displaying polyline line endings
* Added [annotation.isPrintVisible](https://sdk.apryse.com/api/web/Core.Annotations.Annotation.html#isPrintVisible__anchor) to check if annotation is visible when printing
* Added [AnnotationManager.getCopiedAnnotations API](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#getCopiedAnnotations__anchor) to get the list of annotations that are currently copied
* Added a [historyChanged](https://sdk.apryse.com/api/web/Core.AnnotationHistoryManager.html#event:historyChanged__anchor) event to AnnotationHistoryManager as well as the [canUndo](https://sdk.apryse.com/api/web/Core.AnnotationHistoryManager.html#canUndo__anchor) and [canRedo](https://sdk.apryse.com/api/web/Core.AnnotationHistoryManager.html#canRedo__anchor) functions.
* Added a [getContents API](https://sdk.apryse.com/api/web/Core.PDFNet.Annot.html#getContents__anchor) to the FreeText editor instance
* Added a [multiplier option](https://sdk.apryse.com/api/web/Core.Document.html#loadCanvasAsync__anchor) to doc.loadCanvasAsync which changes the scaling factor for that particular loadCanvasAsync call
* Added a [fitText API](https://sdk.apryse.com/api/web/Core.Annotations.FreeTextAnnotation.html#fitText__anchor) to FreeText and Callout annotations to programmatically fit the annotation to the text so that all text is visible
* Added a [new event](https://sdk.apryse.com/api/web/Core.DocumentViewer.html#event:activeSearchResultChanged__anchor) that is fired when the active search result has changed
* Added the `useDisplayAuthor` option to [exportAnnotations](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#exportAnnotations__anchor) so that the XFDF string will contain the [mapped user display names](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#setAnnotationDisplayAuthorMap__anchor).
* Added an optimized version of PDFNet.js that is significantly smaller than the default script by removing function type checks and warnings. It can be used by running the [optimize script](/web/best-practices/optimizing-lib-folder.md).
* Allow PDFDoc objects to be passed at the same time as the pdftronServer option and have them automatically uploaded to the server
* Updated so that if the option `streaming: false` is explicitly passed then there will be no check for whether the server support byte ranges or not

### Fixes

* Fixed many office file rendering issues.
* Fixed many incorrect types in the TypeScript declaration file.
* Fixed issue where images with built in orientation data weren't being displayed upright in all browsers.
* Fixed issue where widgets with the same name were not showing the formatted value correctly
* Fixed issue where switching to a different tool when making a highlight annotation would leave the highlight annotation in the document
* Fixed issue where deleting widgets from the document wasn't removing the field's reference to the widget
* Fixed issue where rich text editor wasn't focused the first time in iOS devices
* Fixed issue where XOD files as Cordova file objects weren't able to be loaded
* Fixed issue where typing in certain text areas in PDF causes the screen to flicker in IE11
* Fixed issue with accented characters in freetext annotations being cut off
* Fixed issue where annotations with the NoView property were not able to be printed
* Fixed issue where documents whose content streams were incorrectly marked as compressed object streams weren't able to be downloaded
* Fixed issue where undo/redo of a FreeText annotation would throw a warning message about appearance render
* Fixed issue where searching did not work in some XOD files
* Fixed issue where signature appearance wasn't displayed for older XOD files
* Fixed issue where setting the dropdownbox list via embedded JS did not work properly
* Fixed issue where entity elements in XFDF could cause the XML parser to lock up
* Fixed exportAnnotCommand so it doesn't throw an error after a widget is created
* Fixed issue where calling getFileData on a doc instance that is created by Core.createDocument would throw an error
* Fixed issue with the overrideSelection property on tools
* Fixed issue where some date formats weren't accepted by date fields

## WebViewer UI

### New

* New default user interface with improved grouping of tools and organization of components.
* Added UI for creating custom stamps with different text, colors, date, time and user name.
* Added a [setCustomModal API](https://sdk.apryse.com/api/web/WebViewerInstance.html#setCustomModal__anchor)
* Added a count measurement tool button in the measurement group.
* Updated the search panel to use a virtualized list for improved performance with many search results.
* Added support for changing the color of signatures as they are created.
* Added [API to customize annotation tooltips](https://sdk.apryse.com/api/web/WebViewerInstance.html#setAnnotationContentOverlayHandler__anchor)
* Added option to include or exclude annotation when printing
* Added the [MouseWheelZoom feature](https://sdk.apryse.com/api/web/WebViewerInstance.html#Feature__anchor) which allows disabling of zooming with the mouse wheel

### Fixes

* Fixed issue where the aspect ratio of thumbnails wasn't preserved in some cases
* Fixed issue where the annotation layer that overlaps the thumbnails wasn't exactly aligned with the page content
* Fixed issue where you can type past max/min zoom level and exposed APIs to get max/min zoom level
* Fixed the swipe threshold so that swiping the pages worked better
* Fixed issue with [disabling FreeText editing on the page](https://sdk.apryse.com/api/web/Core.AnnotationManager.html#disableFreeTextEditing__anchor) not working as expected
* Fixed issues with configorigin.txt when the origin was null


---

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