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

# Version 8.8.0 Changelog (2022-08-30)

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

## WebViewer Core

### New

* Updated content editing to use new inline editing mode to edit text
* Added `AddParagraphTool` for creating new text boxes within documents
* Added `ContentEditManager` to control entering and exiting edit mode
* Added the capability to add images to the PDF content with the new `AddImageContentTool`
* Updated the [template fill](https://sdk.apryse.com/samples/web/samples/advanced/template-fill/) sample to showcase support for HTML and markdown inputs
* Added support for Adobe negative form field styling
* Added API to enable virtual display mode after webviewer instantiation: `enableVirtualDisplayMode`, the counter-part of the already existing API `disableVirtualDisplayMode`
* Improve scrolling in Safari
* Removed appearance rendering for Free Text Annotations for Rich Text as they can be directly rendered by the PDF workers
* Added new event [createAnnotationWithNoScale](https://sdk.apryse.com/api/web/Core.MeasurementManager.html#event:createAnnotationWithNoScale__anchor) that is fired when a measurement tool tries to create an annotation but no scale has been set yet

### Fixes

* Fixed issue where annotations with `NoZoom` property set to `true` could not be rotated
* Fixed issue where no message would be shown if a XOD document was not properly loaded
* Fixed issue where the search event `onPageEnd` was only firing when the whole document was searched, instead of after each page being searched
* Fixed issue where calling drawAnnotations with an override canvas wouldn't draw FreeText text if it was being edited in the main document view
* Fixed issue where an error was thrown when creating FreeText annotation in IE
* Fixed issue where [getDocumentCompletePromise](https://sdk.apryse.com/api/web/Core.Document.html#getDocumentCompletePromise) returned undefined on images
* Fix issue where links and widgets were not being rendered correctly when navigating to a page by clicking on a search result
* Fixed issue where complicated regex search would fail sometimes
* Fixed issue with DistanceMeasurementTool when `overrideSelection` is enabled
* Fixed issue where XOD documents would stop loading pages if the internet connection was lost, and then re-established
* Fixed issue with the search result not updating when the text extraction order changed
* Fixed single dot signature floating above signature field
* Fixed bug where opening WebViewer in Chrome Dev Tools mobile view mode for iOS devices would result in a worker error
* Fixes bug where performing undo/redo on a link annotation, would cause the annotation to disappear
* Fixed issue with invoking [Core.PDFNet.VerificationOptions.addTrustedCertificateFromURL](https://sdk.apryse.com/api/web/Core.PDFNet.VerificationOptions.html#.addTrustedCertificateFromURL) without optional parameters
* Fixed some PDFNet namespace documentation where some methods were erroneously listed as static methods when they were not
* Fixed Office conversion to PDF issue of cutting off images when the pages were rotated
* Fixed issue where annotation appearances were generated when it was not required
* Fixed virtualized list for pages issue with linearized PDFs
* Fixed inconsistencies with the radio button options in the page redaction modal
* Fixed issue with adding new lines while editing text not appearing correctly
* Fixed resizing issue with moving rotated annotation between page
* Fixed issue when importing field data would create duplicate widget annotations
* Fixed issue where custom headers did not work with images
* Fixed issue where zooming over \~2000% will break continuous mode when returning to original zoom level
* Fixed bug where FreeText annotation border would not follow autosizing while typing
* Fixed issue where potentially malicious URLs could be launched when opening a PDF with embedded JavaScript
* Fixed issue where content edit mode wouldn't work by default with a custom UI

## WebViewer UI

### New

* Added `Edit Text` Toolbar Group to Header
* Added `TextEditingPanel` to style text in editing mode (desktop only)
* Added hotkey (ctlr/cmd + F) to toggle the search panel
* Added new `multiPageManipulationControls` API on UI namespace to create new buttons on left panel multipage view
* Added support for showing tooltips when tabbing through UI elements
* Added `getAnnotationStylePopupTabs` and `setAnnotationStylePopupTabs` APIs for getting and customizing annotation style popup tabs
* Added new multi select annotations feature for the notes panel
* Revamped measurement scale and calibration experience. Scales for tools and annotations are easily synced and updated, they're editable from a new modal, they can be fractional or decimal and common defaults are included to get started.
* Updated outline panel UI including features such as setting precise destination and multi-select mode
* Added translations for Czech, Polish, Hungarian, Thai, Romanian, and Swedish
* New and improved experience of measurement scale
* Added additional languages to the language modal
* Added `data-elements` to language options in the language modal for disabling individually
* Added Language constant in the UI namespace for default languages in WebViewer
* Added a `getCurrentLanguage` API to return the current UI language
* Added a `getLocalizedText` API to return the localized text from a given translation key
* Added a `languageChanged` event that triggers when the language changes
* Added `setCustomEmptyPanelContent` API for customizing the content of an empty notes panel
* Added audio and video redaction to the redaction panel

### Fixes

* Fixed issue where WebViewer would crash when repeatedly pressing or holding down the escape key
* Fixed issue where an error would be thrown if [setHeaderItems API](https://sdk.apryse.com/api/web/UI.html#.setHeaderItems) is called after creating a new toolbar group using the [createToolbarGroup API](https://sdk.apryse.com/api/web/UI.html#.createToolbarGroup)
* Fixed issue where mention did not work if the username included numbers, dash or an underscore
* Fixed issue where the page manipulation overlay stays open when a file is loaded via loadDocument
* Fixed issue where images were not being downloaded as PDF from the UI
* Fixed issue where the parent window would scroll if a non-continuous display mode is used and the user uses the mouse wheel to change pages
* Fixed issue where the element `header` could not be disabled when instantiating WebViewer
* Fixed issues where Ellipsis where being resized incorrectly when being drawn close to the edges of the document
* Fixed issue where the unposted comment indicator would remain even if there was no pending comment
* Fixed bug not allowing users to set the orientation of pages more than once when calling setDefaultPrintOptions
* Fixed an issue with `viewerLoaded` event not firing
* Fixed bug where redaction annotations created from the redaction panel were not carrying over the correct styles
* Fixed issue where the document preview in PageRedaction Modal was sometimes wrong
* Fixed issue where an error was being thrown in the console if the AnnotationPopup was disabled and the browser window was resized with an annotation selected
* Fixed an issue where the Redaction panel would open for media redactions


---

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