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

# Version 12.2.0 Changelog (2026-10-01)

New features and fixes in Apryse Web SDK 12.2.0 (October 1, 2026) for viewing, annotations, forms, signatures, and the DOCX and Spreadsheet Editors.

## WebViewer Core

The WebViewer Core changelog covers low-level API, engine, and infrastructure changes that power the Web SDK.

### New

#### Annotations

* Added support for pasting plain text as a FreeText annotation at the current mouse location.
* Added support for dragging annotations across pages with viewport-relative annotation positioning enabled.
* Added categories to preset stamps and document stamps in a new Stamps panel.
* Added custom categories to the new Stamps panel.

#### Digital signatures

* Added `SignatureWidgetAnnotation.hasCryptographicSignature()` to determine whether a signature widget contains a cryptographic digital signature.

#### DOCX Editor

* Added text highlight support for Style and TextStyle APIs.
* Improved Search and Replace performance.

#### Forms

* Added support for signature widget lock dictionaries so configured form fields become read-only based on lock action rules when signatures are applied.
* Added a new API `FieldManager.jumpToField` to automatically scroll the user to the given field.
* Added a new `user` property and `getUser`/`setUser` APIs to the Field class.
* Added a new `getFieldsForUser` property to the FieldManager class.

#### General

* PDF workers are no longer loaded when not required.

#### PDF content editing

* Added additional undo/redo support for sending layers to the front and back (beta).

#### Spreadsheet Editor

* Added an API for setting Spreadsheet comment threads to open or resolved states.
* Added navigation from Spreadsheet Editor comments to their associated cells.
* Added `setCommentText` to update the text of an existing Spreadsheet Editor comment or reply.
* Added `deleteComment`, `deleteThread`, and `deleteReply` methods to `CommentManager` to support deleting Spreadsheet Editor comments and threads programmatically.

### Fixes

#### Annotations

* Fixed an issue where some annotations wouldn't load consistently with WebViewer Server.
* Fixed an issue where exporting annotations would invalidate a locked field by adding custom data to its XFDF.
* Fixed line and arrow annotations not preserving viewport-relative positioning when copied between rotated pages.
* Fixed an issue where file attachments still added an unauthorized file type to the document. Files not matching `ACCEPTED_FILE_TYPES` are now rejected, and a reason: 'type' `fileRejected` event fires.
* Fixed an issue where squiggly annotations would get cut off on landscape documents.
* Fixed an issue where annotations pasted on the same page would not be offset.
* Fixed an issue where annotations could be moved outside of the page even when using the `disallowAnnotationsOutsidePage` API if the annotation was as large as the page.
* Fixed an issue where using the custom widget rendering API got the wrong second argument.
* Fixed an issue where single-click FreeText creation with auto-font-size produced an invisible editor.
* Fixed an issue with FreeText annotations where turning off auto font size shifted the text.
* Fixed an issue where reading XFDF date strings with no specified timezone was treated as UTC instead of local time.

#### DOCX Editor

* Improved copy and paste for mixed lists, preserving numbering and nesting.
* Fixed an issue where pasting HTML copied from Microsoft Word split a single paragraph into multiple lines because of word-wrap newline characters.
* Fixed an issue where the DOCX Editor would scroll the viewport when applying text styles inside a scrollable or padded container.
* Fixed an issue where strikethrough could not be updated via `OfficeEditor.setMainCursorStyle` and `OfficeEditor.updateSelectionStyle`.
* Fixed an issue that caused certain documents to fail to render in the DOCX Editor.

#### Forms

* Fixed an issue where `FieldManager.areRequiredFieldsFilled()` returned false for required signature fields even when they were signed by appearance.
* Fixed grouped checkbox widgets with appearance streams so toggling updates all linked widget appearances consistently and prevents stale checkbox images.
* Fixed an issue with multiline text widgets sometimes causing unexpected text wrapping in iOS/Safari.

#### General

* Fixed an issue preventing text selection on the first page when using WebViewer Server.
* Fixed an issue where radio button layer groups allowed multiple child layers to remain visible simultaneously.
* Removed references to old Content Edit workers from the `optimize-for-prod` script.
* Patched a critical dev dependency within the `webviewer-downloader` script.

#### PDF content editing

* Fixed an issue where excessively large font sizes supplied through Content Edit APIs could cause application slowdown by limiting them to 72.
* Fixed an issue where resizing Content Edit text galleys to very small widths could crash the worker by adding zoom-aware minimum-width guards, synchronized clamp metrics, and fallback handling for paragraph insertion sizing.

#### Spreadsheet Editor

* Fixed an issue where legacy spreadsheet notes could share duplicate IDs.

## WebViewer UI

The WebViewer UI changelog covers user interface, customization, and workflow enhancements available through the Web SDK.

### New

#### Accessibility and localization

* Added `UI.setElementTag` and `UI.ElementTagTarget` to allow embedded applications to customize the document container's HTML tag.

#### Annotations

* Added support for pasting PNG and JPEG images, including images copied from Google Docs, as selected Stamp annotations at the current mouse location.
* Added APIs for registering custom start, middle, and end line styles with configurable UI options.
* Added APIs to register and unregister custom fill styles for shape annotations.
* Added autosaving for annotation comments and replies that are not in focus.
* Added a new virtualized, searchable Stamps panel UI that displays tabs for Preset Stamps and Custom Stamps.
* Virtualized Stamps panel content.
* Added a new skeleton/spinner for document stamps that loads during registration.

#### Digital signatures

* Virtualized Signature panel content.
* Added `UI.setSignatureModalColors` to customize up to three colors shared by ink and typed signatures in the signature modal.
* Added a new API to enable/disable disclaimer messages within the Signature modal.

#### DOCX Editor

* Added a toolbar button and color palette to apply text highlights.

#### General

* Added a responsive skeleton loading screen for document initialization and document-type UI transitions, with an option to retain the legacy spinner.
* Added the new property `useIcon` to toggle using an icon for a tab.
* Added a **Restore Defaults** button to the Layers panel that resets layer visibility back to the document's default state.

#### PDF content editing

* Removed confirmation dialog for content box deletion.
* Added new icon buttons to manage z-order when in content edit.

#### Side-by-side viewing

* Added new per-viewer loading screens in MultiViewer.

#### Spreadsheet Editor

* Added support for automatically selecting and expanding a cell’s comment when the cell is selected while the Comments panel is open.
* Added an **Edit** option for comments in the Spreadsheet Editor and enabled comment editing.
* Added sorting for Spreadsheet Editor comments by position, author, status, creation date, and modification date, with corresponding group labels for each sorting option.
* Added a Delete button in the Notes panel for Spreadsheet Editor comments, hidden in view-only mode.

### Fixes

#### Accessibility and localization

* Fixed an issue where the Zoom label in collapsed header flyouts was not translated.
* Fixed an issue where setting the language in one WebViewer instance would affect all instances.

#### Annotations

* Fixed an issue where the AnnotationPopup did not show the Align button in mobile view.
* Fixed mobile category selection, added a clear control for selected categories, and corrected upward-opening font menu layering in the custom stamp modal.
* Fixed the Brazilian Portuguese label for the form-fill checkmark tool.
* Fixed a crash when creating an ink signature in a second WebViewer instance on the same page, caused by the signature canvas being attached to the wrong viewer's tool.
* Fixed an issue where canceling a comment after it autosaves would persist the new text rather than returning to the last saved text.
* Fixed an issue where deleting a custom stamp that was actively being previewed at the cursor didn't clear the preview, allowing the deleted stamp to still be placed on the document.
* Fixed an issue with tab contrast and filter button availability within the Stamps panel.
* Fixed an issue where long category text wasn't truncated, so it appears appropriately within the Stamps panel.

#### DOCX Editor

* Fixed an issue where returning focus to a DOCX document could freeze the Notes panel while a comment and multiple replies were being edited.

#### Forms

* Fixed an issue where the viewer would jump after deleting a signature from a signature form field.
* Fixed an issue in Safari where users couldn't rename form fields through the form field index panel.

#### General

* Fixed an issue where selection checkboxes were not visible for nested outlines in edit mode.
* Fixed an issue where repeatedly closing the password modal on added password tabs caused the viewer to get stuck in a permanent loading state.
* Fixed an issue where adding a tab with a faulty URL caused a permanent loading state.
* Fixed tabs that didn't appear correctly when they contained only a label.
* Fixed an issue where tooltips would be rendered off-screen with multiple instances of WebViewer.
* Fixed an issue where page manipulation controls in a standalone Thumbnails panel did not respond to panel width changes.
* Fixed an issue where hover popups could become inaccessible when moving the cursor between adjacent links, causing the popup content to close before it could be interacted with.
* Fixed an issue where embedded print mode could drop grouped annotations and incorrectly include note-thread replies in annotation-only print output.
* Fixed an issue where pinch zooming on mobile and tablet devices could shift the zoom focus when WebViewer was offset within the host page.

#### Side-by-side viewing

* Fixed an issue where opening another document in the second viewer would cause the UI to hang on the loading screen.
* Fixed an issue where switching viewers while creating a Polyline annotation would start a second annotation in the new viewer.

#### Spreadsheet Editor

* Fixed an issue where selecting a hidden spreadsheet sheet from the overflow menu left it hidden and inaccessible for rename or deletion.
* Fixed an issue where resizing the DocumentContainer would cause a gap to appear beside the Search panel.
* Fixed an issue where selecting an empty cell displayed a font size that did not match the size applied when typing into the cell.
* Removed the redundant Main Menu heading from the Spreadsheet Editor hamburger menu.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/web/changelogs/version-12/v12-2-0.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
