# Changelog for Web

## 1.14.0 — 23 Apr 2026

See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-14.md).

### UI

* Adds UI customization slots for annotation actions, text markup inline toolbar, locked annotation indicator, font mismatch, and subset font warnings. (#51179)

* Adds UI customization slots for contextual annotation toolbar, annotation actions popover, locked annotation indicator, text markup inline toolbar, and sidebar container. (#51184)

* Adds UI customization slots for delete annotation confirmation, exit content editor confirmation, reload document confirmation, and content editor download and cannot-save prompts. (#51184)

* Adds UI customization slots for digital signature validation status, digital signing flow, note annotation expanded view, link annotation editor, and attachment preview. (#51184)

* Adds UI customization slots for document comparison (controls, view), measurement calibration, and measurement settings. (#51184)

* Adds UI customization slots for electronic signatures (create, list), stamp creation, stamp list, and digital signing modal. (#51179)

* Adds UI customization slots for font mismatch and subset font warning popovers in content editor. (#51184)

* Adds UI customization slots for modals, including delete annotation confirm, document editor, password prompt, measurement settings, and attachment preview. (#51179)

* Adds UI customization slots for tools (main, contextual), search, and sidebar container. (#51179)

* Adds grouped UI customization configuration and preset support. Slots are organized by feature domain (`tools`, `annotations`, `contentEditor`, `signatures`, `stamps`, `measurements`, `documentComparison`, `formCreator`, and `sidebar`). Use `ui: { preset: 'minimal' }` to hide all UIs and selectively restore components. (#51178)

* Adds keyboard support for creating widget annotations in form designer mode using the `PointPicker` cursor. (J#WEB-3975)

* Adds keyboard support for multi-annotation rectangular area selection. (J#WEB-4138, #51546)

* Adds subslot customization (header, body, footer) for all slot-enabled components, enabling partial UI replacement without overriding the entire component. (#51179)

* Adds support for scrolling with fingers while drawing with a stylus in browsers other than Safari (using `ViewState#canScrollWhileDrawing`). (J#WEB-3823)

* Improves content editor text block move performance. (#51570)

* Removes the non-functional alpha slider from Form Creator color pickers. (J#WEB-3344)

* Tightens element filtering in rich text annotations to filter commonly abused elements. (#51041)

* Fixes Document Editor keyboard focus escaping the page navigation area when using Shadow DOM. (J#WEB-4108)

* Fixes Form Creator toolbar button tooltips not being localized. (J#WEB-4142)

* Fixes `HIGHLIGHT_COLOR_PRESETS` and `TEXT_MARKUP_COLOR_PRESETS` not overriding default colors in the text markup annotation toolbar. (J#WEB-2600)

* Fixes OCG radio group layers both showing as selected after applying redactions. (J#WEB-4199)

* Fixes an issue where `ComboBox` dropdown search would fail to display matching options when the form field contained duplicate option values. (J#WEB-4065)

* Fixes an issue where note annotations were unusable with `keepSelectedTool` enabled because the popover would immediately close after creation. (J#WEB-3245)

* Fixes an issue where the annotation toolbar would become empty or crash when switching between shape annotation types with an expanded toolbar panel in responsive collapsed mode. (J#WEB-4143)

* Fixes custom font size input for text annotations applying partial values and losing focus while typing. (J#WEB-3974, J#WEB-3976)

* Fixes date format changes in the Form Creator date widget not taking effect. (J#WEB-3129)

* Fixes font family and font size resetting to defaults when deleting all text in a text annotation. (J#WEB-4124)

* Fixes keyboard focus jumping to the wrong page when tabbing from the thumbnails sidebar in continuous mode. (J#WEB-3698)

* Fixes note annotation icon being invisible on creation when `autoSaveMode` is set to `INTELLIGENT`. (J#WEB-4128)

* Fixes password dialog showing “incorrect password” warning while typing before the password is submitted. (J#WEB-4158)

* Fixes the link annotation popover not having the `Page` radio button selected by default when creating a new link annotation. (J#WEB-3660)

* Fixes the Form Creator inspector incorrectly showing `Date Field` properties for `TextFormField`s with non-date `onFormat` actions such as `AFNumber_Format` or `AFPercent_Format`. (J#WEB-4139)

* Fixes cancelled comment edits still appearing after clicking `Discard Changes`. (J#WEB-4229)

* Fixes standalone DOCX templating dropping custom `objectDelimiter` settings, breaking placeholders that intentionally use `.` as part of the literal marker name. (J#WEB-4294)

### Model

* Adds the `instance.createLayer()` API and `targetLayerId` option for `flattenAnnotations`, enabling export of PDFs with per-user toggleable OCG layers. (J#WEB-4118)

* Adds a `nonce` configuration option for strict Content Security Policy environments that require nonce-based `style-src` and `script-src` rules. (J#WEB-4046)

* Adds the `imagePosition` property to `StampAnnotation` for controlling image placement within stamp text flow. (J#WEB-4176)

* Adds keyboard shortcuts for bold and italic formatting in the Content Editor. (J#WEB-4119)

* Adds multiline stamp annotations with custom font styling and embedded image support via new properties: `multiline`, `font`, `fontSize`, `fontColor`, `isBold`, `isItalic`, `imageAttachmentId`, and `imageContentType`. (J#WEB-4144)

* Adds support for embedding DPI metadata when rendering pages as PNG images. (J#CORE-1071)

* Adds support for explicitly setting and retrieving the overlay text font size of redaction annotations with a new `fontSize` property. (J#WEB-4111)

* Adds support for using the origin private file system (OPFS) as temporary storage when downloading PDFs, improving memory usage. (#51393)

* Improves PDF redaction stability and memory usage for complex documents with nested shared forms and repeated standard-font parsing, reducing cases where applying redactions could consume excessive memory or fail to complete. (J#CORE-1062)

* Improves URI validation scheme for link handling. (#51041)

* Improves performance for PDFs with large content streams. (J#CORE-1064)

* Changes linearized loading to be enabled by default in standalone mode. (J#WEB-4121)

* Fires the `document.change` event when a content editor session is saved. (J#WEB-1797)

* Tightens form submission logic to better restrict commonly abused elements. (#51041)

* Updates GdPicture to 14.4.1 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.4.1) for details). (#51120)

* Fixes AI Assistant standalone mode to support non-PDF documents (Office, images) by using the converted PDF representation for ingestion instead of raw file bytes. (J#WEB-4149)

* Fixes Content Editor text block movement overflowing page bounds. (J#WEB-4157)

* Fixes Instant sync not triggering immediately when browser reconnects, preventing data loss on refresh. (J#WEB-4109)

* Fixes a crash when deleting the last page in the Document Editor and saving. (J#WEB-4137)

* Fixes a form rendering issue that could cause typed text in some PDF form fields to appear bold instead of regular. (J#CORE-1053)

* Fixes a standalone loading deadlock that could occur when `load()` is called twice in quick succession before the first document finishes loading. (J#WEB-4114)

* Fixes an issue where TypeScript incorrectly required the `container` property when using `headless: true`; now warnings will be logged when UI-related configuration options are set in headless mode. (J#WEB-3679)

* Fixes an issue where checkbox and radio widget JavaScript actions were not run after user interaction. (J#CORE-1055)

* Fixes an issue where content editing didn’t update the modification date of the PDF. (J#CORE-1032)

* Fixes an issue where editing a `FreeText` annotation in Web could leave stale rich text in XFDF exports, causing old text to reappear after reimport. (J#CORE-1063)

* Fixes an issue where form fields on imported pages could display values from unrelated fields. (J#WEB-3550)

* Fixes an issue where repeated redactions on certain image-based PDFs could cause the page colors to toggle or appear inverted. (J#CORE-989)

* Fixes an issue where `rgba()` color values in comment text were corrupted by the Document Engine XHTML sanitizer, causing colored text in comments to render as black after reload. (J#WEB-4145)

* Fixes an issue where `setMeasurementScale` didn’t apply the configured scale to newly created measurement annotations on documents with existing scales. (J#WEB-3603)

* Fixes an issue where the AI chat displayed internal form field identifiers instead of human-readable labels. (J#AI-433)

* Fixes an unhandled error that could occur when `unload()` is called shortly after `load()` resolves while render requests are still settling. (J#WEB-4115)

* Fixes a blank page after applying redactions and toggling OCG layer visibility in standalone mode. (J#WEB-4199)

* Fixes corrupted rendering of indexed JPEG2000 image tiles in clipped renders. (J#CORE-948)

* Fixes document comparison crashing when source page index is greater than zero. (J#WEB-451)

* Fixes flattened annotations losing their blend mode, causing freeform highlights to appear opaque after export. (J#CORE-1065)

* Fixes garbled text on non-redacted pages when the document uses shared font resources across pages. (J#CORE-1054)

* Fixes image annotations created from PDF files incorrectly using A4 dimensions instead of the actual PDF page size. (J#WEB-4146)

* Fixes linearized canvas loading by skipping unsupported font preflight, progressive overview rendering, and complexity estimation while the linearized download is still active. (#51416)

* Fixes measurement annotations from failing to load without a measurement license by rendering them as basic shape annotations instead. (J#WEB-3820)

* Fixes printed page content not filling the entire page in Safari. (#51809)

* Fixes `PrintMode.DOM` producing extra blank pages in Safari and Firefox by adapting the print layout to fill the browser’s actual printable area. (J#WEB-4272)

* Fixes progressive memory growth when repeatedly loading and unloading documents. (J#WEB-4162)

* Fixes redaction not visually applying on linearized PDFs in standalone mode. (J#WEB-4230)

* Fixes text annotation bounding box not resizing when edited text wraps in rich text mode. (J#WEB-4123)

* Fixes the Node.js SDK failing to load on Windows due to an invalid ESM URL scheme when using CommonJS (`require`). (J#WEB-3582)

* Fixes truncated PDF exports for document operations when using older Document Engine versions. (#51786)

## 1.13.1 — 7 Apr 2026

### Model

* Updates libpng from 1.6.55 to 1.6.56 to address high-severity CVEs (CVE-2026-33416, CVE-2026-33636). (#51831)

## 1.13.0 — 12 Mar 2026

See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-13.md).

### UI

* Adds keyboard shortcuts (Control/Command-C, Control/Command-X, Control/Command-V) to copy, cut, and paste entire text blocks in the Content Editor. (#50516)

* Adds keyboard support for creating line and shape annotations. (J#WEB-3827)

* Adds keyboard support for creating text and callout annotations. (J#WEB-3826)

* Improves `LayoutMode.AUTO` to take into account the aspect ratio of the document pages. (#50602)

* Improves search accessibility by adding a screen reader announcement for the minimum character requirement. (J#WEB-3862)

* Changes the link annotation popover to display page labels instead of page numbers when page labels are available. (For example, some documents have pages i, ii, iii, etc. before getting to page 1.). (J#WEB-3666)

* Fixes an issue where custom stamp annotation creation was not being announced to screen readers. (J#WEB-3877)

* Fixes an issue where date form fields didn’t have proper ARIA properties. (J#WEB-3872)

* Fixes an issue where scrolling in Content Editor creation mode on touch devices would unintentionally create a text block. (J#WEB-3685)

* Fixes an issue where the note annotation editor was misplaced in iframe mode. (J#WEB-3804)

* Fixes an issue where the password modal prevented typing outside of it. (J#WEB-3639)

* Fixes toolbar button touch targets to meet WCAG requirements (minimum 24×24 px). (J#WEB-3869)

### Model

* Adds APIs for programmatically managing UI content editing sessions. (#50773)

* Adds a new page rendering architecture that improves page loading and zooming performance. This feature is currently in beta and can be enabled with `pageRendering: "next"`. If not set, `pageRendering` currently defaults to `"legacy"`. (J#WEB-3312)

* Adds a `certificateCheckTime` configuration option to control whether digital signature certificates are validated against current time or signing time. Defaults to `signing_time` for better Long-Term Validation (LTV) support. (J#WEB-3816)

* Adds image substitution support to `populateDocumentTemplate()`. (J#WEB-3910)

* Adds support for font substitutions during page rendering of non-embedded fonts. (J#CORE-1014)

* Adds support for refreshing short-lived JWT tokens in server-backed mode via `onAuthFailed` and `setSession`. (J#WEB-3259)

* Improves PDF page rendering when using dynamic fonts by automatically downloading missing fonts so text looks closer to the original. (J#CORE-1012)

* Improves first-page rendering performance for linearized PDFs by prefetching required byte ranges in parallel. (J#WEB-3931)

* Improves text comparison performance when using the `wordLevel` option with documents that produce many changes by adding virtualization to the `DiffViewer` component. (J#WEB-3967)

* Updates GdPicture to 14.3.26 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.26) for details). (#51059)

* Fixes XFDF export being truncated when PDF annotations contain text encoded in Latin-1 (`PDFDocEncoding`) with characters that map to embedded null bytes. (J#CORE-1015)

* Fixes a content editing exception caused by embedded fonts with an empty or null font span, leading to the inability to edit text on certain documents. (J#CORE-1020)

* Fixes a crash in `NutrientViewer.load()` when using `useCDN: true` in ESM/esbuild-bundled environments. (J#WEB-3989)

* Fixes a crash when merging PDFs where the first document has a malformed `StructTreeRoot` (`ParentTreeNextKey` without `ParentTree`). (J#CORE-1013)

* Fixes a race condition that could leave widget appearance streams stale after immediate or rapid programmatic form field updates. (J#WEB-3489)

* Fixes a race condition when rapidly switching documents that could cause container reuse errors. (J#WEB-3815)

* Fixes a race condition where rapidly switching documents caused AI Assistant MCP tools to silently disappear. (J#AI-419)

* Fixes an issue where widget annotations wouldn’t be visible if their appearance stream failed to render. (J#WEB-3921)

* Fixes an issue where clearing the fill color of text and ink annotations to “None” wasn’t reflected in the exported PDF. (J#WEB-3413)

* Fixes an issue where copy/paste from printed or exported PDFs produced garbled text for characters rendered as OpenType ligatures (e.g. “ti” in Calibri). (J#CORE-1036)

* Fixes an issue where focus does not return to the Search document button when closing the search panel. (J#WEB-3875)

* Fixes an issue where focus was lost after drag-and-drop reorder in the Document Editor. (J#WEB-3366)

* Fixes an issue where merging documents fails with “Invalid form field ID” when the document has document-level JavaScript that modifies form field properties. (J#WEB-3444)

* Fixes an issue where arrow keys moved selected annotation when it wasn’t the active element and the active element was a focusable element. (#3153)

* Fixes an issue where note annotations could be moved with the keyboard when the viewer was in `readOnly` mode. (J#WEB-3970)

* Fixes an issue where note annotations created via the AI Assistant MCP interface would silently drop the specified text content. (J#AI-418)

* Fixes an issue where print could not be canceled in `EXPORT_PDF` mode. (J#WEB-3607)

* Fixes an issue where rotated free text annotations with center or bottom vertical alignment could render in the wrong position after saving and reopening a document. (J#CORE-1008)

* Fixes an issue where text annotations with certain fonts, like Calibri, are incorrectly rendered when used in multiple lines making them overlap. (J#CORE-1021)

* Fixes an issue where the AI Assistant connection wouldn’t recover after a temporary server disconnection, leaving the UI stuck in a reconnecting state. (#50892)

* Fixes an issue where the delete confirmation modal wouldn’t close automatically when deleting widget annotations from form fields with multiple widgets. (J#WEB-3686)

* Fixes destination resolution for link annotations and outlines in PDFs with large name trees. (J#CORE-662)

* Fixes inconsistent toolbar item media query breakpoints by adding proper `matchMedia` event listeners. (J#WEB-3488)

* Fixes incorrect text placement when editing tagged PDFs by preserving text in the correct content stream graphics state. (J#CORE-1033)

* Fixes indexed full-text search returning no results when the search term contains special characters such as `&`, `/`, `:`, or `+`. (J#CORE-1030)

* Fixes ink highlighter export rendering when using a background color with multiply blend mode. (J#CORE-951)

* Fixes loading linearized PDFs when the Content-Range header is blocked by CORS. (J#WEB-3831)

* Fixes read-only form field widgets not updating their visual appearance in Document Engine mode. (J#WEB-3819)

* Fixes rich-text annotation wrapping differences that could cause visible size changes after export and reimport. (J#WEB-3457)

* Fixes text extraction for Type 3 fonts that use standard glyph names in their encoding but lack a ToUnicode CMap. (J#CORE-1018)

* Fixes text input being silently blocked in `DoNotScroll` form fields at fractional browser zoom levels (e.g. 75 percent). (J#WEB-710)

## 1.12.0 — 12 Feb 2026

See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-12.md).

### UI

* Fixes an issue where the Document Editor Save and Cancel buttons were offscreen and inaccessible when the viewer had content above it. (J#WEB-3180)

* Fixes an issue where the Document Editor UI was cut off along the bottom on iPad in landscape orientation. (J#WEB-3165)

* Adds a class name distinction between the link popover in view and edit mode. (J#WEB-3783)

* Adds cursor feedback for per-spread pagination navigation. (J#WEB-2536)

* Removes the unsupported multiline option from Form Creator UI for date fields. (J#WEB-3700)

* Fixes the Document Editor move dialog button and placeholder localization. (J#WEB-3695)

* Fixes an issue where `setViewState` would steal focus from external elements in iframe mode when changing interaction mode programmatically. (J#WEB-3644)

* Fixes an issue where annotations near page edges would move off-canvas when resize constraints from `setOnAnnotationResizeStart` were applied. (J#WEB-3535)

* Fixes an issue where checkbox, radio, and switch were responding to Apple Pencil clicks. (J#WEB-2699)

* Fixes an issue where comment links without a protocol would open as relative URLs instead of external links. (J#WEB-3375)

* Fixes an issue where new plain text annotations could disappear when clicking another annotation. (J#WEB-3613)

* Fixes an issue where plain text annotation font size could reset after editing. (J#WEB-3684)

* Fixes an issue where popovers overflowed out of the viewer container. (J#WEB-3493)

* Fixes an issue where resize anchors would drag or move annotations when hitting max dimension constraints set via `setOnAnnotationResizeStart`. (J#WEB-3166)

* Fixes an issue where the contents of a draft comment were overridden by the content of a deleted comment. (J#WEB-3687)

* Fixes an issue where the focus shifted to the last comment editor while typing when multiple comment threads were expanded. (J#WEB-3696)

* Fixes an issue where the text annotation cursor color did not update immediately after changing the font color from the toolbar. (J#WEB-3516)

* Fixes an issue where toggling anonymous comments via the three-dot menu did not persist to the backend until the user explicitly clicked Save. (J#WEB-3789)

* Fixes an issue where toolbar focus jumped to the last item when reentering via Tab. (J#WEB-3336)

* Fixes an issue where two alert dialogs were visible when deleting annotations from sidebar using keyboard. (J#WEB-2400)

* Fixes floating comment threads not collapsing after emptying drafts. (J#WEB-3642)

* Fixes text annotation editor bounding box sizing to prevent unexpected wrapping. (J#WEB-3665)

* Fixes unselected comment threads having the `PSPDFKit-Comment-Thread-Selected` class. (J#WEB-3642)

### Model

* Adds support for Brotli decompression: https://pdfa.org/brotli-compression-coming-to-pdf/. (J#CORE-1006)

* Improves display of JavaScript alert messages. (J#CORE-980)

* Updates GdPicture to 14.3.23 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.23) for details). (#50444)

* Fixes an issue where `sidebarWidth` was not honored if set in `initialViewState`. (J#WEB-3810)

* Fixes a console error when loading documents from an `ArrayBuffer`. (J#WEB-3806)

* Fixes an issue where an incomplete viewer style declaration triggered a console warning. (J#WEB-3420)

* Fixes an issue where certain typographic ligatures (ti, ct, ck) encoded as Private Use Area code points would appear as garbled text when copying from PDFs. (J#CORE-1005)

* Fixes an issue where checkboxes and radio buttons could not be properly set and unset via AI Assistant. (#50280)

* Fixes an issue where comment highlight annotations remained after discarding a draft comment or deleting the last comment in a thread. (J#WEB-3299)

* Fixes an issue where custom overlay items would disappear after applying document operations such as `rotatePages`. (J#WEB-3596)

* Fixes an issue where note annotation icons present in a document would not be rendered. (J#WEB-3776)

* Fixes an issue where right-clicking a link annotation on Windows would open the link instead of showing the context menu. (J#WEB-3813)

* Fixes an issue where setting `Doc.pageNum` in PDF JavaScript would not navigate to the specified page. (J#WEB-3818)

* Fixes an issue where `subActions` were stripped from PDF actions when deserializing widget annotations. (J#WEB-3791)

* Fixes an issue where text markup annotations and redactions would shift incorrectly after applying page margins. (J#CORE-1003)

* Fixes an issue where the `noZoom` property was ignored for `WidgetAnnotation` custom renderers, causing them to incorrectly scale when zooming. (J#WEB-3169)

* Fixes an issue where the custom stamp editor swatch color labels would not be localized. (J#WEB-3801)

* Fixes an issue where the first page’s orientation would incorrectly be applied to all pages when loading multipage TIFF files with different orientations per page. (J#CORE-997)

* Fixes an issue where the toolbar would not update its layout when the container was resized programmatically. (J#WEB-3208)

* Fixes the cutoff for the last line of plain text annotations with top vertical alignment. (J#CORE-947)

* Fixes the execution of OpenAction JavaScript in PDF files. (J#CORE-980)

* Adds partial support for HTML alt chunks in Word documents. (J#MAMBO-2006).

* Improves rendition of fields from Office documents. (J#MAMBO-1985).

* Fixes strikethrough formatting on Excel documents. (J#MAMBO-2004)

## 1.11.0 — 19 Jan 2026

See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-11.md).

### AI

* Adds AI Assistant version 2 support.

### UI

* Fixes an issue where it wasn’t possible to delete a comment from sidebar. (J#WEB-3517)

* Fixes an issue where images weren’t rendered correctly in signature dialog while using iframe mode. (J#WEB-3455)

* Fixes an issue where a dialog wasn’t correctly positioned when a container ancestor had an offset. (J#BASE-499)

* Fixes an issue where arrow navigation was broken in JAWS. (J#WEB-3420)

* Fixes an issue where clicks in RTL mode were shifted when the sidebar was active. (J#WEB-3513)

* Fixes an issue where combobox form fields wouldn’t refresh when blurred. (J#WEB-3451)

* Fixes an issue where editing a comment containing a user mention would cause a duplicate `@` symbol to appear in the input field. (J#WEB-3008)

* Fixes an issue where the clear button wasn’t focusable in the search input. (J#WEB-3518)

* Fixes an issue where setting `zoom.options.enableGestureZoom` to `false` wouldn’t disable double-tap zooming. (J#WEB-3662)

* Fixes an issue where a form field might not update its value on print preview in certain situations. (J#WEB-3419)

### Model

* Improves Instant JSON import and export by using the same form field IDs from imports in subsequent exports. (J#CORE-964)

* Improves types for the UI customization API by consolidating them in a UI namespace. (J#WEB-3560)

* Fixes a crash when redacting form fields. (J#CORE-977)

* Fixes an issue where passing an object URL as a document to `convertToPdf()` would fail. (J#WEB-3658)

* Fixes an issue where triggering `HideAction` would fail to toggle visibility on some annotations. (J#WEB-3689)

* Fixes an issue where range requests support wouldn’t be correctly detected if HEAD requests didn’t return status 206. (J#WEB-3680)

* Fixes an issue where the SDK would fail to load when using Trusted Types API in the CSP (Content Security Policy) header. (J#WEB-3598)

* Fixes an issue where XFDF exported note annotations incorrectly inlined the note color as text color, resulting in yellow-on-yellow text. (J#CORE-978)

* Fixes an issue where a user without permission could open the signature dialog with the keyboard. (J#WEB-3667)

* Fixes an issue where note annotations with the `locked` or `readOnly` flags set would be moveable with the keyboard and mouse wheel. (J#WEB-3495)

* Fixes an issue where the font bounding box was written incorrectly. (J#CORE-985)

* Fixes an issue where the note tool was incorrectly enabled when hovering over a note annotation when `keepSelectedTool` was set to `true`. (J#WEB-1869)

* Fixes an issue where unrelated text was appended to automatically extracted links. (J#CORE-969)

* Fixes a crash that would occur when flattening a PDF with note annotations that contained missing character glyphs. (J#CORE-973)

* Fixes an issue where the measurement scale input wouldn’t accept decimal or fraction values. (J#WEB-2932)

* Fixes ligature character coordinates in text selection when PDFs use `ActualText` marked content. (J#CORE-930)

* Fixes rendering of special Unicode characters in text form fields that were erroneously classified as emojis. (J#CORE-836)

* Fixes visible rect overlaps for highlight annotations in texts with small line heights. (J#CORE-641)

## 1.10.0 — 15 Dec 2025

_See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-10.md)._

### UI

- Adds a tooltip for the delete button in the annotations sidebar. (J#WEB-3544)

- Improves the performance of the thumbnails sidebar and document editor thumbnails for large documents. (J#WEB-3078)

- Fixes an issue where the text annotation background color incorrectly used the first color preset instead of being transparent when `annotationToolbarColorPresets` was configured. (J#WEB-3461)

- Fixes an issue where annotation colors matching preset colors were overridden and not applied correctly when `annotationToolbarColorPresets` was used. (J#WEB-758)

- Fixes an issue where custom Document Editor toolbar item icons would fail to render and freeze the application. (J#WEB-3520)

- Fixes an issue where the internal file input UI would remain after cancelling an image annotation file upload. (J#WEB-3414)

- Fixes an issue where the region outside the SDK container wasn’t scrollable whenever a modal was open. (J#BASE-498)

- Fixes an issue where widgets would be selected and moved while not in form design mode. (J#WEB-3534)

- Fixes text and callout annotations overflowing the document page when editing. (J#WEB-3346)

- Fixes an issue where annotation preset serialization would incorrectly set font styles. (J#WEB-3572)

- Fixes an issue where link annotations with the locked flag set could not be clicked. (J#WEB-3435)

- Fixes an issue where plain text annotations in rotated pages would appear in the wrong position or disappear. (J#WEB-3612)

- Fixes an issue where text annotation content would be lost on Android. (J#WEB-3426)

- Fixes an issue where updating form fields with some additional actions would throw an error. (J#WEB-3611)

- Fixes a file type detection failure when Content-Type headers include a charset or boundary. (J#WEB-3597)

### Model

- Changes comment editor button aria-label from Edit to Save. (J#WEB-3593)

- Fixes an issue in `getComments` where draft comments might be missed in the response when used with Instant. (J#WEB-3429)

- Fixes an issue where wrong objects were preferred when rebuilding cross-reference tables. (J#CORE-972)

- Fixes an issue where thumbnails were being loaded in reverse order. (J#WEB-3078)

- Fixes missing radio/checkbox options in PDFs with inconsistent option lists, ensuring form fields load correctly. (J#CORE-954)

- Fixes two print preview issues in DOM mode: one related to the smallest page size wrongly constraining the size of other pages, and the other being an issue in iOS where print preview wouldn’t show at all. (J#WEB-3146, J#WEB-708)

## 1.9.1 — 14 Nov 2025

_See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-9.md)._

- Adds support for the `buttonImportIcon` PDF JavaScript action in server-backed Web. (J#SERVER-2091)

- Fixes canceled positioning updates when dragging out-of-bounds annotations. (J#WEB-3327)

- Fixes the incorrect position of the annotation editor after scrolling in iframe mode. (J#WEB-3418)

### UI

- Adds the `setUI` method for updating the UI customization slots configuration. (J#3300)

- Improves translations for the text comparison UI. (J#WEB-1956)

- Fixes an issue where RTL text in callout annotations would get smaller after export. (J#WEB-3377)

- Fixes an issue where removing the measurement scale would crash the viewer. (J#WEB-3042)

- Fixes an issue where the secondary measurement showed an incorrect value. (J#WEB-1108)

- Fixes an issue where there was a positioning shift in text annotation creation and ink drawing in RTL mode. (J#WEB-3301)

- Fixes text annotation bounding box shrinking when changing fill or font colors. (J#WEB-3164)

- Fixes translations for measurement labels. (J#2753)

- Fixes applying styles to plain text annotations in rich text mode. (J#WEB-3365)

- Fixes multiline text annotations losing their custom size when editing. (J#WEB-3164, J#WEB-2308, J#WEB-2574)

- Fixes an issue where note annotation icons would look smaller if exported or printed. (J#WEB-3487)

### Model

- Adds a standalone configuration option to send custom HTTP headers. (#49165)

- Adds support for the `includeDrafts` option to fetch draft comments with `getComments`. (J#3429)

- Adds support for password-protected PDFs to AI Assistant. (J#AI-28)

- Adds support for preserving accessibility tags when using content editing. (J#CORE-946)

- Adds support for returning a fallback font for subset fonts in `contentEditingFontMatcher`. (J#CORE-955)

- Adds support for some `NamedAction`s: `prevPage`, `nextPage`, `firstPage`, `lastPage`, `print`, `fullScreen`, `outline`, `find`, `search`, `saveAs`, `zoomIn`, and `zoomOut`. (J#WEB-3071)

- Adds support for stamp annotations blend modes. (J#WEB-3497)

- Improves loading times, especially for document conversions. (J#WEB-3511)

- Improves rendering of dashed lines. (J#CORE-924)

- Improves support for using embedded fonts when content editing. (J#CORE-939, J#CORE-940, J#WEB-3239)

- Fixes a regression in handling free objects in the xref table. (J#CORE-927)

- Fixes an issue where `CapHeight` wasn’t added when embedding files. (J#CORE-937)

- Fixes an issue where `preloadWorker` didn’t load processor worker completely. (#49313)

- Fixes an issue where link annotations wouldn’t work on mobile devices. (J#WEB-3421)

- Fixes an issue where scrolling through some documents with form fields would slow down the UI. (J#WEB-3503)

- Fixes an issue where some PDF documents with formatting scripts would take too long to load. (J#WEB-3424)

- Fixes an issue where the cursor would be positioned at the start of the comment to be edited instead of its end. (J#WEB-3332)

- Fixes issue where bookmarks did not adhere to readonly state. (J#WEB-3046)

- Fixes an issue where a polyline overlaps the text box of a callout annotation. (J#WEB-3445)

- Fixes an issue where users weren’t able to type into comment mentions in Safari. (J#WEB-3433)

- Fixes rendering of some documents in Safari Browser. (J#CORE-950)

- Adds support for converting text files to PDF. (J#WEB-3437)

- Adds option to opt in to use CDN hosted assets for Web SDK. (J#WEB-3132)

- Deprecates copying assets from the npm package. (J#WEB-3132)

- Deprecates default auto-detection behavior with `baseUrl` not set. (J#WEB-3555)

- Fixes an issue where removing a page in small documents would crash. (J#WEB-3410, J#WEB-1946)

## 1.9.0 — 13 Nov 2025

Release removed. Release [1.9.1](#191---14-nov-2025) replaces this release.

## 1.8.0 — 15 Oct 2025

_See the [release notes](https://www.nutrient.io/guides/web/release-notes/1-8.md)._

- Replaces the marquee zoom icon. (#48967)

- Fixes an issue with programmatic updates to text/callout annotations in edit mode. (J#WEB-3298)

- Fixes a memory leak when using custom fonts in standalone mode. (J#WEB-3354)

- Fixes text selection issues for multicolumn documents. (J#WEB-2956)

### UI

- Improves accessibility and customizability of measurements and the measurement annotation toolbar. (#2655)

- Improves keyboard accessibility in widget annotations in Form Creator and Form Designer mode. (J#WEB-3131)

- Fixes the text annotation tool being deactivated when the font selector is opened and closed without selection while `keepSelectedTool` is enabled. (J#WEB-3058)

- Fixes an issue where search highlights remained focused when the search UI was not focused. (J#WEB-3224)

- Fixes an issue where the sidebar width was not properly computed during resize, causing the link annotation popover to be misplaced. (J#WEB-3381)

### Model

- Adds RTL text direction support for text annotations, with automatic direction detection and application of direction attributes for RTL languages. (J#WEB-3258)

- Adds API methods to check the type of AI document results. (#48748)

- Adds support for specifying how revision changes are handled when converting Word documents. (J#WEB-3353)

- Adds `NutrientViewer.AIComparisonPhase` for verifying the status of an AI text comparison operation. (J#WEB-3246)

- Documents `WidgetAnnotation#formFieldName` in TypeScript definitions. (#48754)

- Improves accessibility and PDF/UA support when working with annotations. (J#CORE-923)

- Updates GdPicture to 14.3.17 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.17) for details). (#48918)

- Fixes an issue where PDFs with content before the PDF header were not detected as PDFs. (J#WEB-3335)

- Fixes an issue where RTL text annotations in rich text mode would not render correctly due to a problem with dynamic font loading. (J#WEB-3294)

- Fixes an issue where certain Arabic fonts (for example, Noto Kufi) didn’t render text correctly. (J#WEB-3371)

- Fixes an issue where page wheel zooming would be active with open dialogs. (J#WEB-3049)

- Fixes an issue where wrongly attempting to render empty comments in the sidebar would throw. (J#WEB-3337)

- Fixes a crash when attempting to repair struct tree parents in PDFs with a missing `ParentTree`. (J#CORE-919)

- Fixes a full text search syntax error when the search string contains some reserved characters. (J#CORE-922)

- Fixes an issue where butt caps were treated as if they were extending the length of the measurement line. (J#WEB-3135)

- Fixes an issue where a link annotation popover rendered over the sidebar or offscreen. (J#WEB-3306)

- Fixes an issue where typing in a note annotation caused flickering in Firefox and caused a crosshairs placement UI to appear. (J#WEB-3331)

- Fixes missing outlines when editing documents with broken outline references. (J#CORE-915)

- Fixes the relocation of bookmark to a new page after duplicating or copying pages. (J#CORE-322)

- Fixes cursor placement and bounding box recalculation after a programmatic text annotation update. (J#WEB-3368)

## 1.7.0 — 9 Sep 2025

- Fixes a crash caused by two form fields claiming the same widget annotation ID. (J#WEB-3226)

- Fixes a crash when pointer selection is blurred in the content editor tool. (J#WEB-2562)

- Fixes `applyRedactions` not getting passed in a `document.change` event. (J#WEB-3170)

### UI

- Adds UI customization slots for editing and commenting inside `commentThread`.
  (J#WEB-2855)

- Adds UI customization slots support for custom sidebars. (J#WEB-2982)

- Adds support for customizing the header, footer, and body UI of individual comments.
  (J#WEB-2855)

- Improves interaction for custom input elements in the toolbar. (J#WEB-3173)

- Fixes an issue where note annotations didn’t disable dragging in read-only mode. (J#WEB-1045)

- Fixes an issue where overriding the `onPress` of annotation toolbar items didn’t work for components using popovers like select, combo box, etc. (J#WEB-2829)

- Fixes an issue where the stored signatures dialog didn’t take up the full width of its container. (J#WEB-3252)

- Fixes an issue where the document MIME types weren’t detected correctly on loading. (J#WEB-3112)

- Fixes an issue with the edit bookmark button not doing anything when clicked. (J#WEB-3118)

### Model

- Improves the discovery of widgets with broken links to their corresponding form fields. (J#CORE-885)

- Updates GdPicture to 14.3.13 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.13) for details). (#48224)

- Fixes TypeScript definitions provided with the npm package to avoid errors for some configurations. (J#WEB-3260)

- Fixes when the `document.saveStateChange` listener failed to trigger after creating an invalid annotation (empty text valued text annotation). (J#WEB-3030)

## 1.6.0 — 13 Aug 2025

- Fixes an issue where the `addPageMargins` operation switched the margins axis — left for the top, and right for the bottom. (J#SERVER-1876)

### UI

- Adds a new `ViewState#commentDisplay` property to control how comments are displayed in the UI. (J#WEB-3152)

- Improves callout annotations create event behavior to match text annotations behavior — an event now fires only on blur with non-empty content. (J#WEB-2927)

- Fixes an issue in Document Editor where using the Move dialog failed when moving a page to index 0. (J#WEB-2046)

- Fixes an issue where comments wouldn’t be visible if `Configuration#isEditableComment` returned `true` in some pages. (J#WEB-2959)

- Fixes an issue where creating draft comments would be lost if the comments popover was closed in `FIT_TO_WIDTH` zoom mode. (J#WEB-3041)

- Fixes an issue where new comments being created would disappear after scrolling away some pages. (J#WEB-3070)

- Fixes an issue where comment threads would overlap the page content. (J#WEB-3133)

- Fixes an issue where the search input had clipped text on smaller screens. (J#WEB-2580)

- Fixes an issue where the viewer crashed if the rich text pasted in the comment editor had styles containing color names. (J#WEB-3117)

- Fixes page ordering when moving multiple selected pages in Document Editor. (J#WEB-632)

- Fixes text annotations create events to not fire on toolbar property changes for empty annotations. (J#WEB-3137)

- Introduces a new API for UI customization. (J#WEB-2855)

### Model

- Adds support for unformatted paste using `Cmd+Shift+V` for rich text annotations. (J#WEB-3158)

- Adds a `contentEditingFontMatcher` configuration option that allows matching fonts during content editing. (J#CORE-902)

- Adds certificate chain information to the `pspdfkit/signature-info` Instant JSON type. (J#CORE-804)

- Adds support for solid and dashed border styles to radio buttons and checkboxes. (J#CORE-865)

- Improves font embedding when working with PDF standard fonts. (J#CORE-882)

- Improves handling of orphan page references when exporting edited documents. (J#CORE-896)

- Improves pasting rich text from external sources into rich text annotations. (J#WEB-3158)

- Fixes an issue where an annotation’s values from rich text annotations weren’t synced after copy/paste rich text from different sources. (J#WEB-2249)

- Fixes an issue where changing the current page with an annotation selected in `PER_SPREAD` pagination mode would throw an error. (J#WEB-3040)

- Fixes an issue where the SDK would crash when importing a document with form fields. (J#WEB-3122)

- Fixes deadlocks that could occur when rendering documents with more than 100 pages. (J#IOS-830)

- Fixes some issues that may happen when signing documents with elliptic curve keys (ECDSA). (J#CORE-901)

## 1.5.0 — 21 Jul 2025

### UI

- Adds initial RTL (Arabic/Hebrew) layout support as a proof of concept, with limited functionality; interested customers are encouraged to reach out for feedback. (J#WEB-853)

- Adds support for granular theme customization. (J#WEB-2946)

- Adds support for light and dark high contrast themes. (J#WEB-3109)

- Adds a new `ViewState#commentDisplay` property to control how comments are displayed in the UI. (J#WEB-3152)

- Improves accessibility labels and translations for toolbars. Refer to the [migration guide](/guides/web/migration-guides/aria-labels-migration-guide.md). (J#WEB-554, J#WEB-561, J#WEB-2527, J#WEB-2522)

- Removes the transparent swatch from the text color palette in annotations, as it cannot be selected and defaulted to black when used. (J#WEB-2704)

- Replaces the old link annotation popover with a more accessible and consistent user interface. (J#WEB-2082)

- Replaces the old Form Creator popover with a more accessible and consistent user interface. (J#WEB-2641)

- Fixes an issue where the comment drawer didn’t open on mobile devices. (J#WEB-2930)

- Fixes an issue where the Document Editor image gallery didn’t auto-scroll during a drag operation. (J#WEB-2859)

- Fixes an issue where the element used in `aria-labelledby` and `aria-describedby` wasn’t present in DOM. (J#WEB-3032)

- Fixes an issue where the layout configuration icon didn’t update if a custom icon was passed via API. (J#WEB-2922)

- Fixes an issue where the pagination buttons lost aria attributes while using the keyboard. (J#WEB-3024)

- Fixes an issue where a user was able to submit a blank typed signature. (J#WEB-2822)

- Fixes issues with 'None' color selection for font and background colors when more than one color is selected. (J#WEB-2569)

- Fixes an issue where pressing the Escape key did not close the color input dropdown. (J#BASE-323)

### Model

- Adds configuration for rich text when working with XFDF files. (J#CORE-864)

- Adds support for word-level text comparison. (J#CORE-871)

- Updates GdPicture to 14.3.9 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.9) for details). (#48003)

- Fixes an issue that made `unsafe-eval` required in CSP headers. `unsafe-eval` can now be disabled again. (J#WEB-2924)

- Fixes an issue where comment threads would appear clipped in narrow screen widths. (J#WEB-2809)

- Fixes an issue where it wouldn’t be possible to correctly set the time in some time form fields. (J#WEB-2101)

- Fixes an issue where moving a stamp annotation rotated 45 degrees would resize it. (J#WEB-3012)

- Fixes an issue where text markup annotations would be rendered with wrong proportions when zoomed and the wrong direction on rotated pages. (J#WEB-2864)

- Fixes an issue where the comments sidebar and popover were simultaneously visible in `FIT_TO_WIDTH` view mode. (J#WEB-3057)

- Fixes an issue where the first new comment text field wouldn’t be focused. (J#WEB-2690)

- Fixes an issue where using some Form Creator and Measurements dropdowns would throw an error. (J#WEB-2929)

- Fixes a crash when creating a text parser for a page if verbose logging is enabled. (J#CORE-859)

- Fixes an issue where the SDK would crash when importing a document with form fields. (J#WEB-3122)

## 1.4.1 — 25 Jun 2025

### Model

- Fixes an issue where zoomed in pages would appear blurry. (J#WEB-3054)

- Fixes an issue where setting a cloudy border on ellipse annotations would cause a crash. (J#WEB-3007)

## 1.4.0 — 11 Jun 2025

- Fixes an issue where scrolling to mouse position would change the zoom level even if the mouse is outside the viewer. (J#WEB-2849)

### UI

- Adds support for creation and editing of note annotations using the keyboard. (J#WEB-2526)

- Improves the focus management and keyboard navigation of the annotation inline toolbar. (J#WEB-2667)

- Fixes an issue where pasted annotations retain the same name as the original annotation. (J#WEB-1349)

### Model

- Adds a new option, `NutrientViewer.Options#TEXT_ANNOTATION_AUTOFIT_ON_BOTTOM_KNOB_RESIZE`, to control whether font size should automatically adjust when resizing text annotations with the bottom-right handle. (J#WEB-2737)

- Adds a configuration option for the attachment sidebar to disable the attachment preview. See `AttachmentsSidebarOptions` for more details. (J#WEB-2917)

- Adds the content editing API. (J#WEB-2630)

- Improves font embedding behavior. Fonts will be embedded more often, resulting in a better experience when viewed in outside viewers. (J#CORE-850)

- Improves line height calculation of the generated AP stream for plain text annotations. (J#WEB-2572)

- Improves manual text annotation resizing by dragging the bottom-right handle, supporting both regular and rich text annotations with multiple font sizes. (J#WEB-2737)

- Improves text annotation presets to properly handle font size and family selection between annotation creations. (J#WEB-2568)

- Updates GdPicture to 14.3.7 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.7) for details). (#47693)

- Fixes an issue where attempting to unload a text comparison UI instance would throw an error. (J#WEB-2955)

- Fixes an issue where carriage line breaks weren’t respected during import and export of text annotations. (J#WEB-2572)

- Fixes an issue where form fields weren’t formatted correctly at all times. (J#CORE-676)

- Fixes an issue where linearized documents weren’t rendered correctly. (J#CORE-845)

- Fixes an issue where some CA certificates weren’t recognized as such. (J#CORE-857)

- Fixes an issue where text annotations created with XHTML format ignored the specified `fontSize` and `fontColor` properties, defaulting to 18px font size. (J#WEB-2908)

- Fixes an issue where text comparison changes that involve multiple lines may not be highlighted correctly. (J#WEB-2537)

- Fixes an issue where the annotation appearance would flicker when loading the page. (J#WEB-2750)

- Fixes an issue where the disabled property wasn’t respected in Document Editor custom toolbar items. (J#WEB-2845)

- Fixes an issue where the status of some long-term validation signatures may be invalid. (J#CORE-858)

- Fixes an issue where the text comparison feature may miss some changes. (J#WEB-2943)

- Fixes an issue where the thumbnails didn’t adjust their size and position when the sidebar width changed. (J#WEB-2420)

- Fixes an issue where the underline property wasn’t being persisted as part of text annotation presets. (J#WEB-2568)

- Fixes a modified annotations error in Adobe Reader after signing documents with ink and highlight annotations. (J#CORE-837)

## 1.3.0 — 16 May 2025

### UI

- Adds functionality to show the expanded page indicator, irrespective of the screen size. (J#WEB-2752)

- Adds support for setting a custom breakpoint for the annotation toolbar, which determines whether the items inside it are rendered in expanded or collapsed mode. (J#WEB-2586)

- Improves callout annotations by unifying the scaling system, resulting in more predictable and stable arrow positioning when zooming in and out of documents. (J#WEB-2570)

- Improves the text annotation preset to include the `underline` property. (J#WEB-2568)

- Improves the focus handling of alert dialogs where the buttons now get focused directly. (J#BASE-476)

- Updates Baseline UI packages to 0.43.0. (#47369)

- Fixes an issue where confirm and alert dialogs weren’t centered over a document. (J#WEB-2084)

- Fixes an issue where focus was behaving unexpectedly while font size was manually typed in the content editor. (J#WEB-2416)

- Fixes an issue where `selected` and `disabled` properties in toolbar items didn’t reflect correctly in the UI. (J#WEB-2405)

- Fixes an issue where clicking on another text annotation doesn’t work when the first text annotation is already in edit mode and has selected text. (J#WEB-1477)

- Fixes an issue where font size and font family weren’t stored correctly to the text annotation preset when using rich text. (J#WEB-2568)

- Fixes an issue where line breaks in multiline callout annotations were removed and text could become invisible or shift outside the box after saving. (J#WEB-2315)

- Fixes an issue where popovers didn’t close on clicking outside them in an iframe. (J#WEB-2739)

- Fixes an issue where the overlay scroll didn’t work in touch-based WebKit devices. (J#BASE-473)

- Fixes an issue where the overlays weren’t correctly positioned if all container parents were statically positioned. (J#WEB-2806)

- Fixes an issue where the pager component didn’t work correctly if the document had number-like page labels. (J#WEB-2462)

- Fixes an issue where the signature modal was clipped on smaller screens. (J#BASE-274)

- Fixes an issue where viewer wasn’t displayed correctly when scale had been applied. (J#WEB-2718)

### Model

- Adds the possibility to configure tile size. (#46974)

- Adds support for preserving PDF/UA tags when using the document editor. (J#CORE-750)

- Adds support for running page open and page close actions. (J#CORE-801)

- Adds support for specifying the maximum spreadsheet width and height when converting Excel documents. (J#WEB-2417)

- Adds support for the Acrobat JavaScript `AFTime_KeystrokeEx` API. (J#CORE-639)

- Adds support for the PDF JavaScript 'global' object. (J#CORE-801)

- Improves appearance stream rendering in single line callout and free text annotations to better fit the bounding box. (J#CORE-819)

- Improves load time for Office documents. (J#WEB-2848)

- Improves the responsiveness of starting Content Editor on pages with complex vector graphics like building plans. (#47157)

- Changes the `GoToAction` to set the destination to the page reference instead of the page index. This means the `GoToAction` follows the page, even if pages are moved or deleted. (J#CORE-813)

- Updates GdPicture to 14.3.5 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.5) for details). (#47300)

- Fixes a regression where certain OCR-processed PDFs could no longer be read correctly. (J#CORE-825)

- Fixes an issue where TIFF files that switched between page sizes were rendered incorrectly. (J#CORE-820)

- Fixes an issue where `setOutline` with just two elements only showed 1 element. (J#CORE-812)

- Fixes an issue where certain form field flags weren’t considered correctly. (J#CORE-838)

- Fixes an issue where the characters <> disappeared from the content of text and note annotations. (#1832)

- Fixes an issue where rebuilding the cross-reference table on certain invalid PDFs didn’t work correctly. (J#CORE-815)

- Fixes an issue where the 'Widget' tab order was calculated incorrectly. (J#CORE-818)

- Fixes an issue where the buttons in the page layout dropdown didn’t have tooltips. (J#WEB-2703)

- Fixes an issue where the message 'Unknown additional action trigger: Type' may appear repeatedly in logs. (J#CORE-801)

- Fixes an issue where the primary language of the document wasn’t preserved when using the document editor. (J#CORE-840)

- Fixes an issue where the signature and stamp popups were clipped on smaller screens. (J#BASE-274)

- Fixes an issue where the viewer was crashing when handling time formats that include AM/PM indicators. (J#WEB-2083)

- Fixes an issue where the viewer would crash when a note annotation was deselected in read-only mode. (J#WEB-2689)

- Fixes an issue where widget annotations that haven’t been added to the AcroForm dictionary on signed documents wouldn’t render (not yet supported on Document Engine). (J#CORE-803)

- Fixes text comparison when both documents are passed as an ArrayBuffer. (#47019)

- Fixes broken linearized support in document loading (J#CORE-845)

## 1.2.0 — 9 Apr 2025

### UI

- Fixes to rich text annotations behavior:
  - Improves keyboard focus management and restoration in the toolbar. (J#WEB-2517)

  - Adds support for applying font size and font family to individual text segments within rich text annotations, allowing for more precise and varied text styling. (J#WEB-2118)

  - Unifies the behavior of background color and font color selections in rich text annotations. Now, both color selections function consistently. (J#WEB-1196)

  - Synchronizes rich text properties with underlying annotation metadata when all text is selected, ensuring consistent display between text and its properties. (J#WEB-2118)

  - Fixes an issue where applying bold formatting to a text annotation during input did not immediately reflect the change, and upon losing focus, the last letter or word would disappear. (J#WEB-2250)

  - Fixes an issue where applying bold, italic, or underline formatting during typing in rich text annotations was ineffective, requiring users to apply these styles only after typing. (J#WEB-2256)

  - Fixes an issue where applying bold, italic, or underline formatting to rich text annotations caused line breaks to be stripped, disrupting the intended text structure. (J#WEB-1209)

  - Fixes an issue where applying rich text styling (bold, italic, or underline) to multiline text annotations caused the text to become clipped or partially hidden upon losing focus. (J#WEB-2333)

  - Fixes an issue where changing the background color in a rich text annotation caused the font color dropdown button’s swatch to lose its current color selection. (J#WEB-1194)

  - Fixes an issue where changing the font color during typing in a rich text annotation caused the rich text editor to lose focus, requiring users to manually reselect it to continue typing. (J#WEB-1192)

  - Fixes an issue where changing the text color or other properties in a rich text annotation caused the keyboard focus to be lost, resulting in the selected color being reset. (J#WEB-985)

  - Fixes an issue where deleting the first line in a multi-line rich text annotation caused formatting and data loss upon losing focus. (J#WEB-2022)

  - Fixes an issue where double-clicking a resized text annotation caused it to revert to its original size and formatting. Now, double-clicking preserves the current size and formatting of the annotation. (J#WEB-1151)

  - Fixes an issue where multi-line text annotations were truncated to only the first line upon importing from an XFDF object. (J#WEB-1102)

  - Fixes an issue where pasted rich text content did not retain its original styling, resulting in text appearing in unintended colors or formats. (J#WEB-1234)

  - Fixes an issue where pasting text into a rich text annotation on Windows inserted the text on a new line instead of appending it directly after the existing content. (J#WEB-1235)

  - Fixes an issue where pressing the backspace key or the left arrow key in a rich text annotation would cause the text formatting—such as color and style (bold/italic)—to reset to default settings. (J#WEB-1238)

  - Fixes an issue where reapplying formatting to rich text annotations resulted in the last line being concealed, hindering proper text visibility. (J#WEB-1209)

  - Fixes an issue where resizing a rich text annotation using the right lower handle would adjust the `fontSize` property, leading to inconsistent behavior with handles. Now, resizing with any handle maintains the original `fontSize`, ensuring consistent behavior. (J#WEB-1151)

  - Fixes an issue where setting the vertical text alignment of text annotations to the bottom caused the annotations to disappear or become partially hidden after saving and reopening the document. (J#WEB-2299)

  - Fixes an issue where newlines in rich text annotations weren’t properly preserved when generating the AP stream. (J#CORE-800)

  - Fixes an issue where the property was not applied to XHTML-formatted text in text annotations. (J#WEB-1102)

  - Fixes an issue where the color swatch button did not update to reflect changes in color selection during rich text annotation editing. (J#WEB-1191)

  - Fixes an issue where, after changing the font color during typing in a rich text annotation, subsequent text would revert to the default color instead of the newly selected color. (J#WEB-1193)

  - Fixes an issue where, upon selecting a rich text annotation containing mixed font colors, the color button swatch would display a specific color instead of indicating a mixed selection. (J#WEB-1195)

  - Fixes formatting issues with multi-line text in rich text and XHTML values when using the create method, which previously resulted in warnings for annotations created as multi-line. (J#WEB-1102)

- Improves primary toolbar screen reader compatibility. (J#WEB-2510)

- Fixes an issue where link annotations did not redirect when toggled with keyboard. (J#WEB-2531)

- Fixes an issue in the date picker preventing users from reselecting a previously cleared date. (J#WEB-2259)

- Fixes an issue where a custom button ID incorrectly prepends `custom-` to the given ID. (J#WEB-2721)

- Improves screen reader support for tables in PDFs. (J#WEB-2530)

- Improves tables structure in PDFs. (J#WEB-2708)

### Model

- Adds support for passing numbers to `fields.setItems()` in PDF JavaScript. (J#CORE-794)

- Updates GdPicture to 14.3.3 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.3) for details). (#46897)

- Fixes an issue where form field accessible labels would not be set. (J#WEB-2529)

- Fixes an issue where ink annotations with a background color set would be incorrectly rendered. (J#WEB-2419)

- Fixes an issue where it wasn’t possible to select a signature form field using the keyboard. (J#WEB-2520)

- Fixes an issue where it wasn’t possible to select an ink or image signature annotation using the keyboard. (J#WEB-2519)

- Fixes an issue where page navigation with the keyboard would fail if the page element was focused. (J#WEB-2532)

- Fixes an issue where parsing certain kinds of timestamp certificates may cause a crash. (J#CORE-788)

- Fixes an issue where stamp annotation creation would not be announced to screen readers. (J#WEB-2528)

- Fixes an issue where text annotations made in iOS Preview.app caused them to have a border in thumbnails. (J#CORE-799)

- Fixes an issue where text lines could not be selected in the right order. (J#WEB-2314)

- Fixes an issue with decoding certain unicode text. (J#CORE-771)

- Fixes issue when regenerating 'off' checkbox and radio button appearances. (J#CORE-773)

- Fixes issue with certain unselectable radio buttons. (J#CORE-782)

## 1.1.1 — 8 Apr 2025

- Adds compatibility with new cloud services.

## 1.1.0 — 10 Mar 2025

- Fixes an issue with AI Assistant referencing documents without a layer name. (#46674)

- Adds `NutrientViewer.build()`, which exposes a client for Document Engine’s and DWS API’s processing API. (J#SERVER-1045)

- Fixes an issue where Form Creator and comments didn’t work without an Instant license. Requires upgrading Document Engine to version >= 1.7.0. (J#WEB-2326)

### UI

- Improves UX when selecting text from the last word of a sentence moving right to left. (J#WEB-2190)

- Fixes a callout annotation text overflow issue where content could extend beyond the bounding box due to rounding differences across various window and zoom levels.

- Fixes an issue where the note annotation editor would occasionally jump to the start while typing. (J#WEB-1891)

- Fixes an issue where the comment model ignored provided `createdAt` and `updatedAt` values during instantiation. (J#WEB-2323)

- Fixes press coordinates misalignment in Shadow DOM for the custom overlay items. (J#WEB-2312)

### Model

- Improves memory usage when decoding large page streams, allowing better "Out of memory" error handling. (J#CORE-253)

- Improves text selection experience in Chrome browsers. (J#WEB-2385)

- Updates GdPicture to 14.3.1 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.3.1) for details). (J#SERVER-1438)

- Updates React to version 18.3.1. (J#WEB-812)

- Updates react-intl to v7.1.6. (J#WEB-2356)

- Fixes a crash when aligning documents using points on a straight line. (J#CORE-758)

- Fixes an issue where an error reading "mediaQuery not available" was logged on the console. (J#WEB-2391)

- Fixes an issue where attachments were not passed when updating annotations. (J#WEB-2347)

- Fixes an issue where date form fields would not be visually updated when changing the value. (J#WEB-2322)

- Fixes an issue where it wasn’t possible to select multiple annotations with the UI in pages other than the first one. (J#WEB-2461)

- Fixes an issue where the annotation note icon would appear in the measurement annotation toolbars, which don’t support it. (J#WEB-2349)

- Fixes an issue where the attachment preview didn’t work if the custom load configuration was specified. (J#WEB-2429)

- Fixes an issue where the attachments couldn’t be scrolled if there was too little space. (J#WEB-2428)

- Fixes an issue where the public API declarations depended on React. (J#WEB-1508)

- Fixes an issue where triggering a scoped `ResetFormAction` would incorrectly reset all form fields values. (J#WEB-2184)

- Fixes an issue where undoing a partial ink stroke erasure wouldn’t be reflected in the UI. (J#WEB-1711)

- Fixes an issue with opening certain PDFs that have a broken encryption descriptor. (J#CORE-776)

- Fixes an issue with TIFF images with `0` DPI. (J#CORE-770)

## 1.0.0 — 3 Feb 2025

- Moving to the new versioning scheme: After `2024.8.x`, we will use `<major>.<minor>.<patch>` instead of `<year>.<major>.<patch>` notation.

- The minimum supported version of Document Engine becomes [`1.5.6`](https://www.nutrient.io/guides/document-engine/changelog/#1.5.6), and previous releases do not support the new versioning schema.

- Improves handling of specific broken PDF forms, where multiple instances of the same form are combined into a single PDF. (J#CORE-646)

- Changes public naming of AI Document Assistant to AI Assistant in all classes, functions, and parameters. (J#AI-88)

- Enhances the `viewState.zoom` API with a new `ZoomConfiguration` type that provides granular control over zoom behavior. Users can now customize scroll wheel zoom modes (with or without the Control key) and toggle keyboard/gesture zoom functionality while maintaining backward compatibility with existing zoom setups. (J#WEB-2029)

- Fixes a content editing issue where moving a piece of text with a subsetted font could cause a character swap in some viewers. (J#CORE-577)

- Fixes a crash when opening a PDF with malformed forms. (J#CORE-745)

- Fixes a crash when dealing with malformed embedded files. (J#CORE-728)

- Fixes a slowdown when decoding certain TIFF images. (J#CORE-757)

- Adds support for signing documents hashes via [DWS API](https://www.nutrient.io/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document-dws.md) and [Document Engine](https://www.nutrient.io/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document-document-engine.md). (J#SERVER-1044)

### UI

- Improves accessibility and customizability of several toolbars listed below, some changes in DOM structure, styling and class names are expected. Refer to the [migration guide](/guides/web/migration-guides/baseline-ui-migration-guide.md).
  - Link annotation toolbar. (#294)

  - Image and signature annotation (image) toolbar. (#292)

  - Stamp annotation toolbar. (#293)

  - Text highlight and markup annotation toolbar. (#307)

  - Ink annotation toolbar. (J#Base-291)

  - Text and callout annotation toolbar. (J#Base-296)

  - Content editor toolbar. (J#Base-302)

  - Form creator toolbar. (J#Base-305)

  - Ink eraser toolbar. (J#Base-306)

  - Note annotation toolbar. (J#Base-295)

  - Redaction toolbar. (J#Base-290)

  - Shape annotations toolbars. (J#Base-297, J#Base-298, J#Base-299, J#Base-300, J#Base-301)

  - Document crop toolbar. (J#Base-303)

- Improves performance when handling large number of annotations. (#2090)

- Improves rendering performance for multiple new stamp annotations. (J#WEB-1643)

- Improves the developer experience by including inline comments in the TypeScript declarations.. (J#WEB-2268)

- Fixes annotations and comments created programmatically default the `createdAt` and `updatedAt` values to the current date and time. (J#WEB-1833)

- Fixes an issue where custom translations would break other translations. (J#WEB-1957)

- Fixes an issue where editing multiline plain text would create duplicate line breaks and cause text to be lost after exiting edit mode. (J#WEB-1943)

- Fixes an issue where multiple comment threads opened in non-desktop screens. (J#WEB-2111)

- Fixes an issue where note annotation editor will occasionally jump to the start while typing. (J#WEB-1891)

- Fixes an issue where spacer items beyond the first one would be ignored when customizing the toolbar. (J#WEB-2185)

- Fixes an issue where the main toolbar was not updated when switching to or from the Document Comparison UI. (J#WEB-1915)

- Fixes an issue where the search UI did not open if the toolbar was hidden.. (J#BASE-310)

- Fixes crashes during measurement tool calibration by restricting input to numeric values only. (J#WEB-2114)

- Fixes misalignment of X and Y coordinates in Shadow DOM caused by outer container scrolling for Text & Callout Annotations, Form Creators, Highlight Annotations & Text Highlighter. (J#WEB-2031)

- Fixes press coordinates misalignment in Shadow DOM for the custom overlay items. (J#WEB-2312)

### Model

- Adds a attachment sidebar that allows downloading and previewing of embedded files in a PDF. Preview not available when using Document Engine. (J#WEB-2236)

- Adds support for passing URLs without trailing slash to `baseUrl`. (J#WEB-2304)

- Removes limitation of conversion tools in Salesforce. (#45769)

- Updates GdPicture to 14.2.98 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.98) for details). (#46098)

- Updates package name and version to `@nutrient-sdk/viewer` 1.0.0. (J#WEB-1437)

- Updates the Botan library to version 3.6.1. (J#CORE-683)

- Fixes an issue in which the comments.delete event wasn't triggered in Standalone under certain conditions. (#40397)

- Fixes an issue incremental downloads didn't use the credentials: same-origin policy. (J#CORE-768)

- Fixes an issue retrieving the text of a highlight annotation on rotated pages. (J#CORE-449)

- Fixes an issue when content editing type3 fonts where some text boxes appeared far too small. (J#CORE-754)

- Fixes an issue where `search.termChange` event was not emitted while typing in the search box. (J#Base-346)

- Fixes an issue where callout annotations weren't rendered correctly in other PDF readers. (J#ANDR-937)

- Fixes an issue where comments weren't applied when using applyOperations. (J#CORE-764)

- Fixes an issue where comments would be incorrectly positioned when the viewer was in fit to width mode. (J#WEB-1959)

- Fixes an issue where conversion was not possible with evaluation license. (J#WEB-2219)

- Fixes an issue where image attachment IDs could not be updated on Web Standalone. (J#WEB-23)

- Fixes an issue where in certain PDFs the outline/bookmarks wasn't preserved when using the Document Editor. (J#CORE-753, J#CORE-707)

- Fixes an issue where markup annotations would be rendered in the wrong Z layer. (J#WEB-1626)

- Fixes an issue where only the first and last page where compared when using text comparison. (J#CORE-759)

- Fixes an issue where text layers were not updating after document operations. (J#WEB-2097)

- Fixes an issue where the UI has an inconsistent theme when no theme was set. (J#WEB-1945)

- Fixes an issue where the bundled types threw errors in non-React environments. (J#WEB-1508)

- Fixes an issue where the document IDs of some documents may be incorrectly truncated. (J#AI-123)

- Fixes an issue with GoTo Remote and Goto Embedded actions. (J#CORE-751)

- Fixes document comparison API to match what is actually being returned. Please refer to the migration guide. (J#CORE-629)

- Fixes lockup/crash issues when opening certain malformed PDF forms. (J#CORE-726)

## 2024.8.1 — 12 Dec 2024

- Changes public naming of AI Document Assistant to AI Assistant in all classes, functions, and parameters. (J#AI-88)

### UI

- Fixes text selection for touch devices on iOS 17. (J#WEB-1409)

- Fixes an issue where font formatting options were visible for plain text annotations. (J#WEB-2109)

- Fixes an issue where image URL could not be used as custom toolbar item icon. (J#WEB-2079)

## 2024.8.0 — 18 Nov 2024

### UI

- Improves the consistency and accessibility of the text and callout annotation toolbar. (J#Base-296)

- Adds the text comparison UI to standalone mode. (J#WEB-1893)

- Improves accessibility and customization of the annotations sidebar. (#1874)

- Improves the consistency and accessibility of the ink annotation toolbar. (J#Base-291)

- Replaces the old outline sidebar with a more accessible and consistent user interface. (J#WEB-1952)

- Updates Baseline UI packages to 0.33.0. (#45722)

- Fixes an issue where custom toolbar items would not be included in a dropdown group. (#45515)

- Fixes comment threads rendering in `PER_SPREAD` and `DISABLED` scroll modes. (J#WEB-2032)

### Model

- Updates the default watermark on visible digital signatures. (J#HG-1468)

- Fixes an issue where certain license keys couldn't be read correctly. (J#CORE-725)

- Fixes a UX issue with using the pan tool on Windows devices. (#894)

- Exports the `AnnotationJSONUnion` type. (J#WEB-2047)

- Adds support for reading the widget tab order. (J#CORE-660)

- Updates GdPicture to 14.2.93 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.93) for details).

- Updates the minimum required Document Engine version to 1.5.3. (J#SERVER-1289)

- Fixes a crash that may happen when saving LTV information in a document. (J#CORE-710)

- Fixes an issue where custom toolbar icons with an icon set would not be displayed. (J#WEB-1948)

- Fixes an issue where handwritten signatures may appear unexpectedly cropped. (J#CORE-713)

- Fixes an issue where an incorrect error was being shown when opening a corrupt document. (#45524)

- Fixes an issue where it wasn't possible to select a comment marker if it was too close to the one currently selected. (J#WEB-1723)

- Fixes an issue where the tab index of signature fields wasn't calculated correctly. (J#CORE-660)

## 2024.7.0 — 23 Oct 2024

[Migration guide](/guides/web/release-notes/2024-7.md).

### UI

- Improves accessibility and customizability of the bookmarks sidebar. (#242)

- Fixes API documentation and internal type for `annotationSelection.change` event. (J#WEB-1800)

- Fixes an issue where entering Document Comparison mode would freeze the toolbar. (#45379)

### Model

- Adds support for downloading linearized PDFs in an optimized manner. Use `allowLinearizedLoading: true`. (J#CORE-617)

- Adds support for using multiple pointer devices in the Document Comparison UI. (J#WEB-1567)

- Improves text extraction by replacing invalid characters with the Unicode replacement character (0xFFFD). (J#CORE-701)

- Adds the `formsConfiguration.export.disableComboBoxArrow` configuration option to allow disabling, including the arrow button in combo box form elements. (J#CORE-681)

- Updates GdPicture to 14.2.90 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.90) for details). (#45313)

- Updates the HarfBuzz library to version 10.0.1. (J#CORE-693)

- Fixes an issue when parsing timestamp policies with short OIDs in digital signatures. (J#SERVER-1231)

- Fixes an issue where PDFs with millions of outline elements could exhaust the memory. (J#CORE-694)

- Fixes an issue where digitally signing a document may trigger an error in Adobe Acrobat about a modified page. (J#CORE-45204)

- Fixes an issue where digitally signing with the SHA384 hashing algorithm didn't work. (Z#116874)

- Fixes an issue where form contents may be rotated after exporting and then importing from Instant JSON. (J#CORE-647)

- Fixes an issue where form flags were overwritten when using the processor and when `NeedAppearances` was set in the PDF. (J#CORE-45331)

- Fixes an issue where handwritten signatures may show distorted in some page orientations. (J#ANDR-824)

- Fixes an issue where the layers sidebar wasn't enabled in standalone mode. (#45360)

- Fixes an issue where new or updated measurement scales could not be selected. (J#WEB-1951)

- Fixes an issue where the blend mode wasn't read correctly. (J#CORE-691)

- Fixes an issue where too much memory was used when decoding JPEG2000 image masks. (J#CORE-636)

- Fixes an issue with accessing the local server via IP address. (#45293)

- Fixes issues with Type 3 fonts and text extraction. (J#CORE-703)

## 2024.6.0 — 25 Sep 2024

### UI

- Updates Baseline UI to 0.29.1.

- Fixes an issue where X and Y coordinates in Shadow DOM are misaligned due to scrolling in the outer container. (J#WEB-1556)

- Fixes an issue where event listeners on `annotations.create` or `annotations.update` would cause data loss in multiline rich text annotations. (J#WEB-1736)

### Model

- Adds `startPageIndex` and `pageRange` to `createRedactionsBySearch`. (J#CORE-673)

- Updates GdPicture to 14.2.88 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.88) for details). (#45161)

- Fixes an issue where PDF JavaScript may report an error when setting a custom value to a combo box form field. (J#CORE-675)

- Fixes an issue where signatures on rotated documents were displayed incorrectly. (J#CORE-672)

- Fixes an issue where some annotations may lose their font color when you export them to XFDF and import them again. (J#CORE-680)

- Fixes an issue where some signatures with Long-Term Validation (LTV) information may be incorrectly reported as invalid. (J#CORE-654)

- Fixes an issue where the same font was embedded multiple times when entering diacritics, leading to a massive file size. (J#CORE-634)

## 2024.5.2 — 10 Sep 2024

### UI

- Fixes an issue where callout boxes may have bigger-than-expected sizes, depending on the zoom value. (J#WEB-714)

### Model

- Improves the evaluation experience. (J#CORE-667)

- Fixes an issue where annotations exported to XFDF and then imported again may lose their text color. (J#CORE-648)

- Fixes an issue where opening certain image files with broken XMP/EXIF headers may crash the app. (J#CORE-665)

## 2024.5.1 — 2 Sep 2024

### UI

- Updates Baseline UI to 0.28.0.

### Model

- Updates GdPicture to 14.2.85 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.85) for details).

- Adds support for exporting documents to Office formats in Document Engine mode: DOCX, XLSX, and PPTX. (J#WEB-1461)

- Fixes an issue where `Configuration.UI` had the wrong type. (J#WEB-1712)

- Fixes an issue where PDF documents rendered incorrectly after opening a specific PDF. (J#CORE-643)

- Fixes an issue where comment avatars could no longer be custom rendered. (J#BASE-212)

- Fixes an issue where converting a bitonal TIFF with a lot of pages consumed too much memory. (J#CORE-621)

- Fixes an issue where invisible digital signatures may incorrectly show the sign badge when rendered. (J#WDEMO-120)

- Fixes an issue where it was not possible to drag multiple annotations around. (J#WEB-1620)

- Fixes an issue where markup annotations were positioned incorrectly. (J#WEB-1732)

- Fixes an issue where the trust certificate store may not load successfully if some path in it is not accessible. (#44732)

- Fixes an issue with highlight shape when adding text highlights on rotated pages. Text highlights now cover only the rectangle of the relevant text, without using curved edges. (J#ANDR-313)

## 2024.5.0 — 13 Aug 2024

### UI

- Fixes an issue with a missing public class name for the comment's avatar. (#44711)

- Fixes an issue where the comment drawer was cropped on mobile devices. (J#WEB-1636)

- Fixes an issue where the date picker value was not syncing correctly with the input value for formats other than `yyyy-mm-dd`. Now, the picker value is correctly synchronized for all supported date formats. (J#WEB-1498)

- Fixes an issue where it wasn't possible to select signatures other than the first one from the signature picker. (J#WEB-1599)

- Fixes an issue where the viewport would briefly move offscreen when using the toolbar on narrow screens. (J#WEB-1627)

- Fixes an issue where creating a form field with multiple radio widgets would throw an error if properties were modified with the UI. (J#WEB-991)

### Model

- Updates the minimal Document Engine version used in server-backed mode to 1.3.0. (J#WEB-1484)

- Adds support for document content editing with the UI in Document Engine mode. (J#WEB-1466)

- Adds support for parsing custom colors in PDF JavaScript, and converting colorspaces by using the `color.convert` API. (J#CORE-580)

- Improves text selection. (J#CORE-596)

- Updates GdPicture to 14.2.82 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.82) for details).

- Updates HarfBuzz library to 9.0.0. (J#CORE-625)

- Updates the Botan library to version 2.19.5. (J#CORE-633)

- Updates the STB library to version 2.30. (J#CORE-570)

- Fixes an issue where callout annotations would lose part of their text after being created with the UI. (J#WEB-1489)

- Fixes a crash when editing the content of some documents. (J#CORE-601)

- Fixes an issue where an Instant JSON file exported after saving a file may not contain a `formFieldValues` entry. (J#CORE-599)

- Fixes an issue where callout annotations may not appear or may work incorrectly after rotating a page. (J#WEB-1350)

- Fixes an issue where redaction didn't handle certain text objects correctly, resulting in some displaced text. (J#CORE-612)

- Fixes an issue where signed fields may not display correctly on rotated pages. (J#CORE-608)

- Fixes an issue where some form fields could not be selected if their variants failed to render. (J#WEB-1649)

- Fixes an issue where the date and time pickers weren't added reliably. (J#CORE-520)

- Fixes an issue with the appearance of checkboxes added by the form creator. (J#WEB-336)

- Fixes an issue where stamp annotations would fail to render in some circumstances. (J#WEB-1629)

- Fixes an issue where new comment threads would disappear when clicking outside during editing. (J#WEB-1703)

- Fixes an issue where some UI text would not correctly update when the locale was dynamically changed. (J#WEB-1672)

## 2024.4.0 — 26 Jun 2024

### UI

- Improves the Comments UI and replaces it with a more accessible and consistent user interface. (J#WEB-964)

- Fixes an issue where checkboxes, buttons, and radio buttons would not visually indicate their focused state. (J#WEB-911, J#WEB-1164)

- Fixes an issue where custom document editor buttons overflowing the toolbar would receive wrong arguments in their `onPress` callback. (J#WEB-1486)

- Fixes an issue where the document would be scrolled when a dialog showed up when the container overflew the viewport. (J#WEB-557)

### Model

- Adds support for RegExp.$1 to RegExp.$9 to access regular expression capturing groups from PDF scripts. (J#CORE-567)

- Improves TIFF image document quality by respecting the embedded DPI values. (J#CORE-522)

- Improves performance of setting the dynamic font loading metadata. (J#CORE-569)

- Improves performance when rendering multiple identical new stamp annotations in Standalone mode. (J#WEB-1445)

- Updates GdPicture to 14.2.75 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.75) for details).

- Updates the HarfBuzz library to version 8.5.0. (J#CORE-583)

- Fixes an issue that prevented adding comments to a document after editing it, such as duplicating pages. (J#CORE-546)

- Fixes an issue where `CommentMarkerAnnotations` failed to open the comment threads drawer on mobile. (J#WEB-1370)

- Fixes an issue where, after redacting, some images were displaying incorrectly (e.g. black instead of white). (J#CORE-561)

- Fixes an issue where exporting and importing Instant JSON may incorrectly move annotations or forms. (J#CORE-589)

- Fixes an issue where ink annotations created right before opening the document editor would not be initially visible if the Document Editor UI was exited. (J#WEB-1444)

- Fixes an issue where it wouldn't be possible to select some combo box option for long lists. (J#WEB-1310, J#WEB-1288)

- Fixes an issue where multiline text form fields were not scrollable if set to read-only, or when the viewer was set to read-only. (J#WEB-1090)

- Fixes an issue where new text annotations created with the UI would disappear when clicking away. (J#WEB-1281)

- Fixes an issue where some digital signatures may incorrectly report as invalid. (J#CORE-597)

- Fixes an issue where some digital signatures may not be validated correctly. (J#CORE-607)

- Fixes an issue where text annotation content changes in the UI would not be preserved. (J#WEB-1360, J#WEB-1355)

- Fixes an issue where the `value` property of the `Field` object in JavaScript may return an incorrect type in some cases. (J#CORE-582)

- Fixes an issue where the a11y tool JAWS would read the content of the previous page when focusing on a certain page of a document. (J#WEB-566)

- Fixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)

- Fixes an issue where, in some cases, PDF JavaScript that changes the value of a form field was not executed correctly. (J#CORE-590)

## 2024.3.2 — 20 May 2024

- Fixes an issue where `NutrientViewer.DocumentValidationStatus` could not be accessed. (#44024)

- Fixes an issue where the signature widget background wasn't displayed correctly in server-backed mode. (J#SERVER-437)

### UI

- Fixes an issue where copied text could not be pasted into text annotation content in Rich Text mode. (J#WEB-1114)

- Fixes an issue where text annotation would lose focus while the `keepSelectedTool` flag is enabled. (J#WEB-675)

### Model

- Adds support for adding a custom signature graphic when adding a digital signature. (J#CORE-543)

- Improves performance opening documents with forms by ~3x. (J#CORE-260)

- Improves performance when rendering multiple identical new stamp annotations. (J#WEB-953)

- Improves the content editing functionality in documents that contain tables. (J#CORE-506)

- Improves the performance of the snapping tool with construction documents. (J#CORE-536)

- Updates GdPicture to 14.2.72 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.72) for details).

- Updates the HarfBuzz library to version 8.4.0. (J#CORE-559)

- Fixes an issue when adding comments where an error around a `rootId` was shown. (J#WEB-1159)

- Fixes an issue where an incorrect note icon may show on top of highlight annotations with comment replies. (J#CORE-527)

- Fixes an issue where borders added with the link annotation toolbar would not be preserved in the exported document. (J#WEB-1363)

- Fixes an issue where borders set for a link annotation would not be rendered when reopening the document. (J#WEB-1362)

- Fixes an issue where deleting the value of a form field may incorrectly show the previous value in some situations. (J#CORE-531)

- Fixes an issue where redaction annotations could not be applied by third-party software like Adobe Acrobat. (J#CORE-555)

- Fixes an issue where rotated widget annotations would be rendered with incorrect dimensions. (J#WEB-1107)

- Fixes an issue where the line dash pattern was rendered differently than in other PDF readers. (J#CORE-540)

- Fixes an issue where the tab order specified in the document pages would not be honored for pages containing only forms. (J#WEB-1296)

- Fixes an issue where the text in a callout annotation may appear in the wrong position. (J#CORE-466)

- Fixes an issue where the viewer attempted to render annotations with `0` width or height. (J#WEB-1301)

- Fixes an issue where updating locked layers state in the layers sidebar would break other sidebars. (J#WEB-1337)

- Fixes an issue where text annotation content changes in the UI would not be preserved. (J#WEB-1360, J#WEB-1355)

## 2024.3.1 — 02 May 2024

### UI

- Fixes an issue where it was not possible to clear the date on date input form fields. (J#WEB-1143)

- Fixes an issue where the date input picker would not be available in Firefox. (J#WEB-962)

- Fixes an issue where the imported XFDF's callout annotation had a very small arrow head. (J#WEB-931)

### Model

- Improves UI performance when concurrently creating and updating multiple annotations. (J#WEB-953)

- Updates GdPicture to 14.2.70 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.70) for details). (#44023)

- Fixes an issue where `annotations.update` would be emitted instead of `annotationSelection.change` when selecting multiple annotations. (J#WEB-234)

- Fixes an issue where comments were not correctly loaded when imported through `Configuration#instantJSON` or created with `instance#create()`. (J#WEB-1081)

- Fixes an issue where it would not be possible to change radio button form fields when their value was not unique. (J#WEB-942)

- Fixes an issue where measurement labels on rotated pages weren't exported correctly. (J#CORE-529)

- Fixes an issue where programmatic changes to text annotations in editing mode would not be persisted. (J#WEB-1205)

- Fixes an issue where sometimes text wasn't properly exported into a PDF if a tab character was used. (J#CORE-558)

- Fixes an issue where the SDK would fail to load in a new window in Firefox and Safari. (J#WEB-1199)

- Fixes an issue where the `annotations.paste` event would not include the original annotations in the event listener payload. (J#WEB-1048)

- Fixes an issue where the redaction tool may redact a bigger area than necessary in some documents. (J#CORE-562)

- Fixes an issue where integrating the SDK with Angular reports a build problem with react dependencies. (J#WEB-1052)

## 2024.3.0 — 11 Apr 2024

_See the [announcement post](/blog/pspdfkit-web-2024-3-new-stamps-signing-ui/)._

### UI

- Adds support for modifying the page margins with a new `addPageMargins` document operation. (J#WEB-1123)

- Replaces the old signing UI with a more accessible and consistent user interface. (J#WEB-413)

- Replaces the old stamp creation UI with a more accessible and consistent user interface. (J#WEB-907)

- Fixes an issue where empty text annotations, when created via the text toolbar and dismissed by clicking outside or pressing escape, were previously saved on the page and added to the history. Now, they are cleared and not recorded. (J#WEB-944, J#WEB-1049)

- Fixes an issue where ink and image signature annotations would be rendered twice while being dragged. (J#WEB-1162)

- Fixes an issue where the user interface would sometimes be rendered before the style sheets had finished loading. (J#WEB-1101)

- Fixes an issue where widget custom data was lost in Form Creator after switching to another form field. (J#WEB-325)

### Model

- Adds `noZoom` flag support for stamp and text annotations. (J#WEB-838)

- Adds a new `flattenElectronicSignatures` flag to prevent electronic signatures from hiding behind signature form fields. (J#WEB-620)

- Adds appearance stream generation for link annotations. This means any set borders will now be rendered. (J#CORE-483)

- Adds support for editing the content of PDF documents that use Type3 fonts. (J#CORE-478)

- Adds support for exporting to DOCX, XLSX, and PPTX Office formats. (J#WEB-766)

- Adds `PSPDFKit#convertToOffice()` and `instance#exportOffice()` to export the current document to an Office format. (J#WEB-766)

- Removes support for Safari versions older than 15.4. (J#WEB-892)

- Updates the HarfBuzz library to version 8.3.1. (J#CORE-524)

- Fixes a rare crash in certain PDF documents with JavaScript. (J#CORE-500)

- Fixes the error 'Assertion failed: Annotation ID is already known' which may happen when opening a document. (J#CORE-435)

- Fixes an issue where a message about a form field script trying to modify the value of the same form field may incorrectly appear in the console. (J#CORE-511)

- Fixes an issue where annotation contents would not be announced by screen readers. (J#WEB-815)

- Fixes an issue where dynamic fonts weren't used for stamps. (J#CORE-484)

- Fixes an issue where listing embedded files in rare PDFs could cause a crash. (J#CORE-493)

- Fixes an issue where opening a document with a digital signature may report additional changes. (J#CORE-473)

- Fixes an issue where refreshing the LTV information of some signed documents may fail. (J#CORE-499)

- Fixes an issue where tagged images would not reflect the accessible text when interacting with screen readers or pointer devices. (J#WEB-1013)

- Fixes an issue where the appearance of unsigned signature form fields may ignore some property changes, like their border width. (J#CORE-417)

- Fixes an issue where the email preset didn't mark some email addresses for redaction. (J#CORE-514)

- Fixes an issue where the text selection rectangle was too big, resulting in squashed text. (J#CORE-496)

- Fixes an issue where validating some documents with LTV information may incorrectly return that the revocation status couldn't be checked. (J#WEB-1042)

- Fixes an issue with PDF comparison when the content stream didn't contain any stroke color commands. (J#CORE-533)

- Fixes an issue where rotated widget annotations would be rendered with incorrect dimensions. (J#WEB-1107)

## 2024.2.0 — 5 Mar 2024

_See the [announcement post](/blog/pspdfkit-web-2024-2-new-unified-ui-icons/)._

- Add new Vite.js integration example. (J#WEB-163)

### UI

- Fixes an issue where link annotations could not be added using UI on the second page in double page mode. (J#WEB-76)

- Fixes an issue where search results remained highlighted when the search UI was closed before the search had finished. (J#WEB-87)

### Model

- Adds a configuration option to disable loading Web Workers inline. (J#WEB-705)

- Adds support for importing and exporting comments with InstantJSON. (J#CORE-419)

- Adds support for reading and changing the page annotations keyboard navigation order using the new `instance#getPageTabOrder()` and `instance#setPageTabOrder` API methods. (J#WEB-405)

- Adds support for specifying the number of page spreads around the current page to be prerendered. (J#WEB-916)

- Improves support for page annotations keyboard navigation by honoring the order specified in the document. (J#WEB-405)

- Updates the SDK container to use a shadow root instead of an iframe. (#WEB-206)

- Updates GdPicture to 14.2.62 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.62) for details). (#43474)

- Updates the user interface icons design. (J#WEB-810)

- Fixes an issue where calling Field.value in a PDF JS script may return the wrong value. (J#CORE-450)

- Fixes an issue where font names with certain encodings may not be parsed correctly. (J#CORE-292)

- Fixes an issue where pasted annotations name property kept the source annotation id. (J#WEB-333)

- Fixes an issue where text with the FL and FI ligatures wasn't extracted correctly. (J#CORE-443)

- Fixes an issue where the measurement tools toolbar item would not be available in REST mode. (J#WEB-943)

- Fixes an issue where the text selection of italic characters was too large. (J#CORE-444)

## 2024.1.3 — 14 Feb 2024

- Fixes an issue where text with negative font sizes caused the text to vanish in the content editor. (J#CORE-438)

### UI

- Fixes an issue where a comment editor would close on scrollbar clicks. (#43207)

### Model

- Adds conditional statement support for Word templates in `NutrientViewer.populateDocumentTemplate()`. (#43434)

- Updates GdPicture to 14.2.61.1 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.61) for details). (#43434)

- Fixes an issue where calling the PDF JS API field.setItems may not change the form's value. (J#CORE-430)

- Fixes an issue where new digital signatures may have a black border by default. (J#CORE-412)

- Fixes an issue where the appearance of unsigned signature form fields may ignore some property changes, like their border width. (J#CORE-412)

- Fixes an issue where date fields value was not validated correctly. (J#CORE-361)

- Fixes an issue where shape annotations imported via Instant JSON may incorrectly show a black border. (J#CORE-392)

## 2024.1.2 — 5 Feb 2024

- No web-specific changes in this version.

## 2024.1.1 — 30 Jan 2024

- Fixes vertical alignment of free text annotations when using rich text. (#42793)

### Model

- Fixes an error message that may appear in the logs when using the snapping tool. (J#CORE-391)

- Fixes an issue where changing the visibility of OCG layers would not update the selectable text. (#43169)

- Fixes an issue where converting the document would only work once. (J#WEB-819)

- Fixes an issue where extracted text was garbled due to incomplete reading order information in the PDF. (J#CORE-385)

- Fixes an issue where redacting some kind of documents may corrupt them. (J#CORE-375)

- Fixes an issue where text blocks were split when encountering two or more narrow characters. (J#CORE-380)

- Fixes an issue where text selection was not accurately handled for text containing larger gaps. (J#CORE-341)

- Fixes an issue where canceling the import file dialog in `buttonImportIcon` elements would disable the element in Safari < 16.4. (J#WEB-875)

## 2024.1.0 — 18 Jan 2024

_See the [announcement post](/blog/pspdfkit-web-2024-1-ltv-support-for-digital-signatures/)._

- Improves Document Editor performance when dealing with large documents. (#42927)

- Updates Harfbuzz to 8.2.2. (J#CORE-275)

- Fixes `script-src` Content Security Policy (CSP) requirements. `wasm-unsafe-eval` can now be used instead of `unsafe-eval`. (J#CORE-335)

- Fixes free text callout rendering and rich text link render on rotated pages. (J#CORE-297)

- Fixes vertical alignment of free text annotations when using rich text. (#42793)

### UI

- Adds a new sidebar to the UI to list signatures in a document. (J#WEB-284)

- Adds a new sidebar to the UI to show and control the visibility of document OCG layers. (J#WEB-255)

- Fixes an issue where `customData` was not persisted in callout annotations in certain conditions. (J#WEB-355)

- Fixes an issue where creating a rich text annotation with `keepSelectedTool` set would crash the SDK. (J#WEB-82)

- Fixes an issue where it wasn't possible to independently set the border color of callout annotations with the UI. (J#WEB-762)

### Model

- Adds `NutrientViewer.ElectronicSignaturesConfiguration.colorPresets` and `NutrientViewer.defaultElectronicSignatureColorPresets`. (#42515)

- Adds `NutrientViewer.Configuration#baseProcessorEngineUrl` to allow requesting processor engine assets from a different URL in Standalone. (#42056)

- Adds the `documentEditorConfiguration` API to configure the Document Editor. (J#WEB-408)

- Adds support for Flutter for Web licenses. (J#WEB-460)

- Adds support for `buttonImportIcon` button types to load and show images from the user local system. (J#WEB-381)

- Adds support for adding LTV to a signature. (J#WEB-112)

- Adds support for importing multiple documents in a single operation in the Document Editor UI. (J#WEB-442)

- Adds support for modifying operations applied in the Document Editor UI using custom buttons. (J#WEB-514)

- Adds support for showing the signer's timezone in the appearance of signed signature fields. (J#CORE-263)

- Adds support for trial licenses and updates the handling of instances without a license. (J#WEB-74)

- Adds support for programmatically locking the visibility of OCG layers present in a document. (J#WEB-255)

- Improves scrolling performance with a high number of text annotations. (J#WEB-645)

- Updates GdPicture to 14.2.56 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.56) for details). (#43033)

- Fixes a crash that may happen when parsing certain kinds of outlines. (J#CORE-356)

- Fixes a potential crash when generating AP streams. (J#CORE-364)

- Fixes an issue where `MEASUREMENT` and `MEASUREMENT_SETTINGS` interaction modes could not be set using the public API. (J#WEB-434)

- Fixes an issue where `page.press` wouldn't be emitted when multiple annotation selection was enabled. (J#WEB-440)

- Fixes an issue where deleted form fields would not be correctly removed from the application form fields list. (J#WEB-193)

- Fixes an issue where deleting a form field widget would fail with radio button form fields. (J#WEB-357)

- Fixes an issue where disabled date form fields could still be interacted with. (J#WEB-711)

- Fixes an issue where empty comment marker annotations would still be rendered. (J#WEB-595)

- Fixes an issue where image annotations would appear blurry when a document was zoomed in. (J#WEB-28)

- Fixes an issue where performance would degrade when opening documents with a lot of content per page. (J#WEB-441)

- Fixes an issue where rendering annotations with an empty appearance would log an exception. (J#WEB-747)

- Fixes an issue where rendering very big annotations would fail on iOS. (J#WEB-702)

- Fixes an issue where rich text annotations could not be pasted. (J#WEB-603)

- Fixes an issue where some PDF scripts may run with an undefined `event.target` property. (J#CORE-366)

- Fixes an issue where the `formFields.change` event would not be emitted without the Form Designer license feature. (J#WEB-487)

- Fixes an issue where the cross-reference table may be invalid after saving a file. (J#CORE-321)

- Fixes an issue where it wasn't possible to create a callout annotation using the API. (J#WEB-749)

- Fixes an issue where the appearance of stamp annotations wouldn't be refreshed when an annotation was updated. (J#WEB-704)

## 2023.5.4 — 14 Dec 2023

### Model

- Updates GdPicture to 14.2.52 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.52) for details). (#42735)

- Fixes an issue where rendering the page would sometimes throw an error on iOS when zooming in quickly. (J#WEB-623)

- Fixes an issue where text that had a lot of spacing in between was treated as one block, therefore leading to wrong text selection results. (J#CORE-323)

- Fixes an issue where typing in small single-line text form fields would be blocked. (J#WEB-633)

- Fixes a crash while looking up character codes. (J#CORE-348)

- Fixes an issue where instantJSON missing field crashed the viewer. (J#WEB-662)

- Fixes an issue where stamp annotations imported with `parseXfdf()` may look distorted in some documents. (J#CORE-320)

- Fixes freetext annotation callout line ends when importing from XFDF. (J#CORE-297)

## 2023.5.3 — 30 Nov 2023

- Fixes SDK loading on Safari version 16.4 and before. (#42590)

- Fixes an issue where `instance.save()` resolved before the save process finished when saving image annotations. (J#WEB-601)

### UI

- Fixes an issue by which copying content from pages contained extra line breaks. (J#WEB-212)

- Fixes an issue by which screen readers read additional sections that weren't present. (J#WEB-212)

### Model

- Adds `viewState.enableAlwaysScrollToZoom` to toggle zooming via scrolling with the mouse without pressing CTRL. (J#WEB-13)

- Updates GdPicture to 14.2.51 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.51) for details). (#42681)

- Fixes an issue where typing in some small form fields was not possible. (J#WEB-524, J#WEB-525)

- Fixes an issue where changing the form field name in Form Creator would make the SDK crash. (J#WEB-534)

- Fixes an issue where loading documents with signature forms would throw an error if the license did not include Digital Signatures. (J#WEB-535)

- Fixes an issue where loading link annotations may incorrectly log an error. (J#CORE-281)

- Fixes an issue where selecting text would throw an error when the selection was programmatically collapsed. (J#WEB-240)

- Fixes an issue where the wrong rich text was rendered. (J#CORE-315)

## 2023.5.2 — 15 Nov 2023

- Fixes border style selection for shape annotations in Instant JSON when `strokeDashArray` is not present. (J#CORE-270)

- Fixes issue of Safari where pages fail to render. (J#CORE-277)

- Fixes rendering of tiling patterns when zooming. (J#CORE-195)

- Fixes an issue where text annotations imported from XFDF may not render correctly. (J#CORE-279)

- Fixes an issue where text selection would stop working after using the ink eraser. (J#WEB-447)

### Model

- Improves performance loading some documents with big annotations. (J#CORE-272)

- Fixes an issue for unhandled exception when using measurements in Server-backed without Instant. (J#WEB-232)

- Fixes an issue where opening a PDF failed due to `failure_parsing_content_tree`. (J#CORE-278)

- Fixes an issue where text parsing failed on some right-to-left PDFs. (J#CORE-294)

## 2023.5.1 — 13 Nov 2023

- Fixes SDK loading on Safari version 16.4 and before. (J#CORE-305)

## 2023.5.0 — 8 Nov 2023

_See the [announcement post](/blog/pspdfkit-web-2023-5-dynamic-fonts-and-outline-crud-support/)._

- Improves performance of form field formatting when field hold no value. (J#CORE-260)

- Fixes XFDF export of dashed borders when cloudy borders were previously set. (J#CORE-185)

- Fixes an issue where custom fonts listed for Content Editing were not working. (J#WEB-39)

### UI

- Improves performance when rendering documents at high zoom levels on Standalone mode. (J#WEB-177)

- Added support for snapping the cursor to the nearest snapping point while drawing with measurement tools. (J#WEB-96)

- Fixes an issue by which some characters were sometimes cut off when resizing text annotations. (#40974)

- Fixes an issue where clicking outside a plain text callout annotation led to a crash. (#41749)

- Fixes an issue where the SDK crashed when changing the inline formatting of an unselected rich text annotation. (J#WEB-99)

### Model

- API: Added `disablePointSnapping` to `NutrientViewer.ViewState` to toggle point snapping with the UI in measurement tools mode. (J#WEB-96)

- API: Added the feature to populate document template with dynamic data in Standalone mode. (J#WEB-57)

- API: Added instance.getDocumentPermissions() method to retrieve current document permissions. (J#WEB-59)

- API: Adds a new `instance.setDocumentOutline()` method to modify the document outline. (J#WEB-120)

- API: Exposes a `NutrientViewer.Comment` serializer and deserializer. (J#WEB-396)

- API: Introduces `NutrientViewer.Configuration#processorEngine` allowing to choose between a smaller or a faster engine size. (#41435). (J#WEB-33)

- Adds support for retrieving annotations overlapping a given annotation or form field with the new `instance.getOverlappingAnnotations()` public API method. (J#WEB-110)

- Adds Support for uploading font files at runtime to improve the handling of missing fonts. (J#WEB-72)

- Adds an option to ignore page rotation to importing and exporting XFDF. (J#CORE-93)

- Adds processor engine to the assets that can be eagerly fetched by `preloadWorker()` explicitly setting `Configuration.processorEngine`. (#42008)

- Adds support for font substitution via the new public API `Configuration#fontSubstitutions`. (J#WEB-31)

- Adds support for performing Text Comparison for two documents programmatically. (J#WEB-290)

- Adds support for programmatically setting the default text in the Text Electronic Signatures UI. (#41097)

- Adds support for signing and validating PAdES B-T Digital Signatures. (J#WEB-68)

- Improves UI responsiveness while the document is being scrolled. (J#WEB-177)

- Improves copied text when a PDF document doesn't have any structure information. (J#CORE-239)

- Improves rendering performance in documents with forms. (J#WEB-36)

- Updates GdPicture to 14.2.48 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.48) for details). (#42440)

- Updates the HarfBuzz library to 8.2.1. (J#CORE-229)

- Updates the default signature watermark for signed documents. (J#WEB-308)

- Fixes an issue were default values for text annotations would be invalid and throw an error. (J#WEB-203)

- Fixes an issue when redacting images with a mask referencing a color. (#41558)

- Fixes an issue where annotations would not be rendered after applying operations. (J#WEB-32)

- Fixes an issue where embedded files were not transferred when editing documents. (J#CORE-205)

- Fixes an issue where getting digital signatures info would cause an error. (J#WEB-78)

- Fixes an issue where moving text annotations would increase memory usage. (J#WEB-298)

- Fixes an issue where rich text annotations font color would be lost when viewing the annotation in plain text mode. (J#WEB-79)

- Fixes an issue where rich text was converted to plain text incorrectly, missing content after new lines. (J#CORE-136)

- Fixes an issue where some color was lost when redacting documents. (J#CORE-201)

- Fixes an issue where some form actions would fail to toggle form fields visibility. (J#WEB-56)

- Fixes an issue where text content was not correctly sanitized in plain text annotations. (#41515)

- Fixes an issue where the font name was incorrectly inherited in certain form hierarchies. (J#CORE-69)

- Fixes an issue where widget annotations could be rendered behind other annotation types. (J#WEB-29)

- Fixes an issue with the `util.scand` and `util.printd` functions of the Adobe PDF JavaScript API, which in some cases returned the wrong result. (J#CORE-271)

- Fixes an issue where typing in some small form fields was not possible. (J#WEB-358)

- Fixes an issue where opening a PDF failed due to `failure_parsing_content_tree`. (J#CORE-278)

- Fixes an issue where text parsing failed on some right-to-left PDFs. (J#CORE-294)

## 2023.4.6 — 23 Oct 2023

### Model

- Fixes an issue where moving text annotations would increase memory usage. (J#WEB-298)

- Fixes an issue where some form actions would fail to toggle form fields visibility. (J#WEB-56)

- Updates GdPicture to 14.2.47 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.47) for details). (#42350)

## 2023.4.5 — 5 Oct 2023

- Fixes an error — 'Assertion failed: Annotation ID is already known' — which may happen when opening a document. (J#WEB-233)

### UI

- Fixes an issue that resulted in the leak of DOM elements after dragging text annotations. (J#WEB-238)

- Fixes an issue where adding signatures with the Electronic Signatures dialog would fail for some configurations. (J#WEB-200)

### Model

- Updates libwebp to 1.3.2. (J#CORE-230)

- Improves performance loading a document if automatic link extraction is enabled. (J#CORE-215)

- Fixes an error after editing some documents using the document editor. (J#CORE-234)

- Fixes an issue where copied text had too many newlines in PDF documents without structure information. (J#CORE-246)

- Fixes an issue rendering PDFs when annotation bounding boxes are out of range. (J#CORE-168)

- Fixes an issue where measurement properties weren't correctly applied when importing XFDF. (J#CORE-225)

## 2023.4.4 — 21 Sep 2023

### UI

- Fixes an issue where the annotation rotation handle would appear clipped at low zoom levels. (J#WEB-176)

- Fixes an issue where attempting to render some annotations would throw an error. (J#SERVER-373)

### Model

- Fixes an issue where annotations, bookmarks, and comments might have been listed and exported in the wrong order in Server-backed mode. (J#SERVER-154)

- Improves memory usage on pages with a lot of vector graphics. (J#CORE-210)

- Fixes an assertion that happened on opening certain PDFs (`addToElementNodeList`). (J#CORE-222)

- Fixes the unsetting of annotation flags via Instant JSON. (J#CORE-183)

## 2023.4.3 — 15 Sep 2023

No Web-specific changes in this version.

## 2023.4.2 — 13 Sep 2023

### Model

- Updates GdPicture to 14.2.43 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.43) for details). (#41987)

## 2023.4.1 — 7 Sep 2023

### UI

- Adds support for programmatically setting the default text in the Text Electronic Signatures UI. (#41097)

- Fixes an issue in which some characters were sometimes cut off when resizing text annotations. (#40974)

- Fixes an issue where clicking outside a plain text callout annotation led to a crash. (#41749)

- Fixes an issue where the SDK crashed when changing the inline formatting of an unselected rich text annotation. (J#WEB-99)

### Model

- Updates GdPicture to 14.2.41 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.41) for details). (#41868)

- Fixes an issue when redacting images with a mask referencing a color. (#41558)

- Fixes an issue where annotations would not be rendered after applying operations. (J#WEB-32)

- Fixes an issue where embedded files were not transferred when editing documents. (J#CORE-205)

- Fixes an issue where getting digital signatures information would cause an error. (J#WEB-78)

- Fixes an issue where rich text was converted to plain text incorrectly, missing content after new lines. (J#CORE-136)

- Fixes an issue where text content was not correctly sanitized in plain text annotations. (#41515)

- Fixes an issue where the font name was incorrectly inherited in certain form hierarchies. (J#CORE-69)

## 2023.4.0 — 14 Aug 2023

_See the [announcement post](/blog/pspdfkit-web-2023-4-measurements-improvements-and-cades-support/)._

### UI

- Adds support for creation and update of callout annotations in UI. (#40831)

- Adds a new UI to support secondary measurement unit. (#41376)

- Adds a new measurements toolbar UI. (#41376)

- Adds support for multiple scales in a document. (#41376)

- Adds support for snapping to shape points based on 'autoCloseThreshold' value to all Perimeter/Polyline shapes. (#40477)

- Hides annotation notes for link annotations, and the annotation note button in the link annotation toolbar. (#40307)

- Improves calibration UI for scales. (#41376)

- Improves drawing Polyline/Perimeter shapes with custom cursor and active preview line. (#40812)

- Fixes an issue rich text formatting didn't work in some cases after an inline formatting was applied. (#40831)

- Fixes an issue where the thumbnails container would crash after performing operations in the Document Editor UI and changing the order of the pages. (#40262)

### Model

- API: Adds support for programmatically adding visible digital signatures to a document. (#40548)

- API: Exposes the locked and readOnly annotation flags. (#41313)

- Deprecates support for `setSelectedAnnotation` and `getSelectedAnnotation` and they will be removed on the next major release. (#39665)

- Adds additional flags `invisible`, `readOnly`, `locked`, `toggleNoView` and `lockedContents` to the flags property of annotations in InstantJSON. (#41335)

- Adds multiple annotations selection and annotations grouping api. (#39665)

- Adds support for OpenType collection fonts (.otc). (J#CORE-91)

- Adds support for adding CAdES digital signatures to documents. (#40891)

- Adds support for adding, updating and deleting paragraphs. (#40616)

- Adds support for executing scripts after digitally signing a document. (#40883)

- Adds support for programmatically configuring the zoom in / out step for the zoom UI. (#41392)

- Improves AP stream generation to generate more optimal text rendering commands. (J#CORE-101)

- Improves Office conversion and PDF/A startup performance. (#41254)

- Improves accessibility by rendering document content using WCAG 2.1 compliant HTML elements. (#41037)

- Improves embedding of OpenType CFF fonts. (#40481)

- Improves validation of provided custom fonts. (#40853)

- Adds the `Configuration#autoCloseThreshold` option to control the threshold for snapping perimeter/polyline shape points. (#40477)

- Adds `NutrientViewer.Configuration#measurementValueConfiguration` to manage multiple scales in a document. (#41376)

- Updates GdPicture to 14.2.36 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.36) for details). (#41485)

- Updates HarfBuzz to 8.0.1. (J#CORE-129)

- Updates the Botan library to version 2.19.3. (#40107)

- Fixes a memory access issue when updating annotations. (#41177)

- Fixes a potential crash when parsing the reading order in an invalidly tagged PDF. (#40419)

- Fixes an issue where `borderColor` wasn't serialized for 'pspdfkit/text' annotations. (#40905)

- Fixes an issue where creating note annotations would throw an error when `keepSelectedTool` was set. (#40684)

- Fixes an issue where deserializing callout annotations would fail. (#40367)

- Fixes an issue where documents would fail to be imported in Android Chrome. (#40399)

- Fixes an issue where exporting custom stamp annotations to XFDF and then importing them cause them to show blurry. (J#CORE-113)

- Fixes an issue where page navigation was triggered when drawing ink annotation on touch devices. (#28326)

- Fixes an issue where performing undo/redo does not work when creating/deleting a form field in form designer mode. (#38840)

- Fixes an issue where redaction annotations applied on pages with rotation may not appear correctly. (#25007)

- Fixes an issue where sometimes the wrong font is used when applying changes in the content editor. (#40663)

- Fixes an issue where the `incremental` flag was ignored if set when calling `instance.exportPDF()`. (#41230)

- Fixes an issue where using 'Cmd+A' keyboard shortcut while editing a form field name selects all annotations. (#39710)

- Fixes issues with Emoji rendering when using rich text annotations. (J#CORE-52)

- Fixes placement of values on measurement annotations. (#40885)

- Adds support for always displaying the measurement value while drawing with a measurement tool. (#40469)

- Adds support for showing a measurement annotation value always on the document, and no longer inside a note annotation when the measurement annotation is small. (#40469)

- Fixes an issue where Office documents would fail to convert when using custom fonts on Firefox. (#41468)

## 2023.3.5 — 26 Jul 2023

### Model

- Updates GdPicture to 14.2.36 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.36) for details). (#41485)

## 2023.3.4 — 6 Jul 2023

### Model

- Updates GdPicture to 14.2.33 (see [changelog](https://www.nutrient.io/guides/dotnet/changelog.md#14.2.33) for details). (#41192)

## 2023.3.3 — 3 Jul 2023

### UI

- Fixes an issue where long links in Link annotations were being cut off. (#40562)

### Model

- Fixes an issue where "Type" and "Image" signature annotations were rejected by Server. (#40844, S#ERVER-124)

- Adds support for Safari and iOS Safari 15. (#40790)

- Improves compatibility of converted Office documents with provided custom fonts. (#40853)

- Applies patch to libtiff to fix CVE-2023-2731. (#40657)

- Fixes an issue by which calls to NutrientViewer.load didn't resolve while the page was in the background. (#41120)

- Fixes an issue where form fields with associated calculation scripts may not work correctly when the values are decimal numbers. (#40460)

- Fixes an issue where the 'updatedAt' field in annotations wasn't preserved correctly when importing JSON. (#37490)

- Fixes an issue where the cloudy border effect was set when importing InstantJSON annotations. (#40472)

- Fixes an issue where validating some digital signatures created by DocuSign may incorrectly report additional changes. (#39972)

- Fixes an issue where we wouldn't render an annotation if no font was found. (J#CORE-83)

## 2023.3.2 — 14 Jun 2023

### UI

- Adds support for `auto` font size value for new form fields in Form Creator. (#40491)

- Fixes an issue where ink annotations in creation would be hidden when enabling multiple annotation selection. (#40395)

### Model

- Fixes an issue where customized annotations sidebars would not be refreshed when annotations changed. (#40496)

- Fixes an issue where printing a digitally signed document would throw an error. (#40449)

- Fixes an issue where setting a custom locale would throw an error. (#40498)

- Fixes an issue where the 'updatedAt' field in annotations wasn't preserved correctly when importing JSON. (#37490)

## 2023.3.1 — 25 May 2023

- Fixes an issue with Full-Text Search queries containing `,` characters. (#39309)

### UI

- Fixes an issue where form field name was not correctly updated if you selected another widget in form creator mode without closing an open popover. (#40334)

### Model

- API: Adds `Configuration.onCommentCreationStart` and `instance.setOnCommentCreationStart()` to modify comments before starting to edit them in the UI. (#40371)

- Fixes a crash when entering Content Editor in a document containing Type 3 fonts. (#40036)

- Fixes an issue where exportInstantJSON() would incorrectly decode UTF-8 characters. (#40465)

- Fixes an issue where grouped widget annotations were not copied/duplicated correctly. (#40223)

- Fixes an issue where images could be inverted when redacting JBIG2 images. (#40341)

- Fixes an issue where processing would endless loop on malformed PDFs. (#40388)

- Fixes an issue where text in multi line form field was cut off after two newlines. (#40504)

- Fixes an issue where the TypeScript declarations didn't compile correctly in some projects. (#40536)

## 2023.3.0 — 11 May 2023

_See the [announcement post](/blog/pspdfkit-web-2023-3-open-office-files-conversion-to-pdfa/)._

### UI

- Adds support for comments in Standalone deployments. (#39176)

### Model

- API: Adds `Configuration#disableMultiSelection` option to disable multiple annotations selection. (#39130)

- API: The `instance.create`, `instance.update` and `instance.delete` methods now work with `NutrientViewer.Comment` records in Standalone deployments. (#39176)

- API: `NutrientViewer.Annotations.CommentMarkerAnnotation` records are now also available in Standalone deployments. (#39176)

- API: `comments.change`, `comments.willSave`, `comments.didSave`, `comments.load`, `comments.create`, `comments.update` and `comments.delete` events are now fired for Standalone deployments. (#39176)

- API: Adds a `transparent` flag to `NutrientViewer.Color`. (#39210)

- Adds Support for opening and converting Office files. (#39599)

- Adds Support for programmatic export and conversion to PDF/A. (#39916)

- Improves text rendering, particularly for languages that do not use the Latin alphabet. (#39812)

- Improves the accuracy of line spacing in text annotations. (#37687)

- Fixed the Error when a mode is selected and the toolbar item is replaced by another button. (#39148)

- Support adding digital signature metadata in Standalone. (#39820)

- Fixes a crash when entering Content Editor in a document containing Type 3 fonts. (#3)

- Fixes a rare crash that can happen when importing Instant JSON if an annotation has a non-default blend mode. (#39457)

- Fixes an issue in which the onChange additional action wasn't correctly exposed. (#37963)

- Fixes an issue where `setEditingAnnotation` would select widget annotation. (#38644)

- Fixes an issue where document scripts would not be executed when importing XFDF. (#39546)

- Fixes an issue where exported text annotations with rich text couldn't be edited in some third party PDF readers. (#40097)

- Fixes an issue where exporting a document with a text annotation with a bold underline style attribute may lose its style. (#39827)

- Fixes an issue where it was not possible to save a color property as transparent if previously set to other color. (#38072, #37999)

- Fixes an issue where redaction annotations weren't applied on image documents. (#38776)

- Fixes an issue where some ink annotations would disappear when activating ink eraser mode. (#39833)

- Fixes an issue where the text of rich text annotations may be cut off when exported. (#39736)

## 2023.2.0 — 11 Apr 2023

_See the [announcement post](/blog/pspdfkit-web-2023-2-comment-mentions-notifications/)._

- Fixes an issue where images represented as screen annotations are not rendered. (#37695)

### UI

- Adds support for comment mentions. (#39104)

- Adds support for mention notifications. (#39101)

- Adds support for displaying Instant comment content in 'Fit To Width' zoom mode. (#37210)

- Improves accessibility label name used when focusing closed comment threads. (#37881)

- Improves handling of pasted rich text containing nested `p` and `div` tags in rich text annotations and instant comments. (#38611)

- Improves keyboard navigation in content editor mode. (#37235)

- Improves rendering of empty `p` tags in rich text comments by treating them as newline elements. (#38646)

- Adds undo/redo support to rich text annotations and rich Instant comments. (#38639)

- Fixes the cursor position of Measurement Tool magnifier when the sidebar is toggled on. (#37894)

- Updates the default value of the `NutrientViewer.Options.BREAKPOINT_MD_TOOLBAR` constant to 1070px. (#38593)

- Fixes an issue where annotations with duplicate IDs would not be rendered in Standalone deployments. (#37626)

- Fixes an issue where applying instantJSON with annotation version 1 would not work. (#38899)

- Fixes an issue where changes in form creator mode were commited after you closed the popover. (#37084)

- Fixes an issue where form field values did not sync correctly for widgets created using form creator. (#38516)

- Fixes an issue where rich text in Text annotations and comments were not rendered correctly in the sidebar. (#38714)

- Fixes an issue where rich text inline toolbar for comments opened on every selection change. (#39241)

- Fixes an issue where the Electronic Signatures 'Done' button was always disabled under certain conditions. (#37688)

- Fixes the issue of measurement tool being enabled during content editing session. (#38717)

### Model

- API: Added `NutrientViewer.Configuration#mentionableUsers` to configure the list of users that can be mentioned in comments. (#39104)

- API: Added `comments.mention` event to notify when a user is mentioned in a comment. (#39101)

- API: Added `NutrientViewer.Configuration#printOptions` to manage print mode and quality settings. (#37972)

- API: Added support for specifying the maximum and minimum annotation dimensions when resizing in `NutrientViewer.Configuratyion#AnnotationResizeStartCallback`. (#34677)

- API: Adds support for widget annotation's `borderDashArray` property. (#38889)

- Adds support for a `fontSize` property for redaction annotations in Instant JSON, which sets the size of the redaction overlay text. (#39017)

- Adds support for specifying the Instant JSON version for annotations exported with instance.exportInstantJSON(). (#39357)

- Adds support for updating the form field name using API and UI. (#37949)

- Improves text parsing and text selection. (#38089)

- Improves the appearance of the overlay text in redacted documents, adjusting their font size much better to fill the available space. (#39017)

- Improves the visual appearance of exported rich text annotations. (#39100)

- Updates the HarfBuzz library to version 7.0.1. (#36924)

- Fixes a potential crash in low memory situations. (#39373)

- Fixes an internal error thrown when a widget annotation is deleted on Server-backed deployments. (#35538)

- Fixes an issue where the doNotScroll flag would not be honoured in multiline text form fields, allowing more content than required. (#39853)

- Fixes an issue to disable the selection of multiple annotations from different pages. (#39379)

- Fixes an issue when exporting rich text with bold and italic text attributes. (#38672)

- Fixes an issue where a background image was accidentially reverted when redacting on certain PDF pages. (#39342)

- Fixes an issue where annotations AP streams were not refreshed when zooming in. (#38807)

- Fixes an issue where applying a redaction annotation may incorrectly invert the colors of certain documents. (#38722)

- Fixes an issue where certain documents with signature fields may not load correctly. (#38301)

- Fixes an issue where choosing a date in a form field may set the day before in some situations. (#39612)

- Fixes an issue where form fields with preexisting names would be initially allowed to be created. (#34573)

- Fixes an issue where image annotations were not correctly rendered in multiple instances of the same document. (#39613)

- Fixes an issue where radiobuttons and checkboxes weren't able to be selected if the on state key was encoded as UTF-16. (#38844)

- Fixes an issue where saving a PDF file with a indirect null object could cause a crash. (#39127)

- Fixes an issue where some annotations added to a document are not correctly exported to Instant Document JSON. (#39014)

- Fixes an issue where some form fields were incorrectly rendered when their value was changed. (#38035, #38073)

- Fixes an issue where the file size increased too much after adding emojis. (#38393)

- Fixes an issue where the pages would appear blurry at certain zoom levels. (#37103)

- Fixes an issue where the redaction tool may incorrectly displace text in some situations. (#38642)

- Fixes an issue where the sign badge would keep showing after signing a form field. (#38858)

- Fixes an issue where the unicode checkmark character wasn't rendered correctly. (#36785)

- Fixes some issues where the redaction tool may incorrectly remove more vector graphics than strictly necessary. (#38295)

## 2023.1.4 — 22 Mar 2023

No Web-specific changes in this version.

## 2023.1.3 — 9 Mar 2023

- Fixes an issue where annotations created using our REST API would not be correctly deleted from the document. (#38663)

- Fixes an issue where browser cache was not invalidated on version upgrade. (#38412)

### UI

- Improves similarity between edited and exported text form fields. (#38823)

- Fixes an issue where applying document operations with the UI would sometimes result in an error. (#38693)

## 2023.1.2 — 28 Feb 2023

### UI

- Improves handling of pasted rich text containing nested `p` and `div` tags in rich text annotations and instant comment. (#38611)

- Improves keyboard navigation in content editor mode. (#37235)

- Improves rendering of empty `p` tags in rich text comments by treating them as newline elements. (#38646)

- Adds undo/redo support to rich text annotations and rich Instant comments. (#38639)

- Fixes an issue where applying instantJSON with annotation version 1 would not work. (#38899)

- Fixes an issue where rich text in Text annotations and comments were not rendered correctly in the sidebar. (#38714)

### Model

- Improves text parsing and text selection. (#38089)

- Fixes an internal error thrown when a widget annotation is deleted on Server-backed deployments. (#35538)

- Fixes an issue when exporting rich text with bold and italic text attributes. (#38672)

- Fixes an issue where annotations AP streams were not refreshed when zooming in. (#38807)

- Fixes an issue where applying a redaction annotation may incorrectly invert the colors of certain documents. (#38722)

- Fixes an issue where certain documents with signature fields may not load correctly. (#38301)

- Fixes an issue where form fields with preexisting names would be initially allowed to be created. (#34573)

- Fixes an issue where the pages would appear blurry at certain zoom levels. (#37103)

- Fixes an issue where the redaction tool may incorrectly displace text in some situations. (#38642)

- Fixes an issue where the sign badge would keep showing after signong a form field. (#38858)

- Fixes an issue where images represented as screen annotations are not rendered. (#37695)

## 2023.1.1 — 15 Feb 2023

No web-specific changes in this version.

## 2023.1.0 — 31 Jan 2023

_See the [announcement post](/blog/pspdfkit-web-2023-1-rich-text-support-annotation-rotation/)._

### UI

- Adds a notification tooltip when activating a text block for content editing with missing fonts. (#37595)

- Adds specific licensing support for Salesforce. (#37774). (#37774)

- Adds support for editing Instant Comments. (#37935)

- Adds support for rendering signature widgets AP streams for unsigned signature form fields, with any signature license component. (#37485)

- Adds support for selecting words by double clicking/tapping on content editor mode. (#37707)

- Improves accessibility message for custom stamp text input form. (#35542)

- Improves accessibility message for the color picker. (#35518)

- Improves navigation on document pages using assistive technologies for accessibility. (#38215)

- Improves navigation to Instant Comments via assistive technologies. (#37881)

- Add support for rich text in Text Annotations. (#37778)

- Add support for rich text in comments. (#37377)

- Allow to specify custom values for font size from the UI. (#37233)

- Fixed SDK Crash when annotationToolbarItems or instance.setAnnotationToolbarItems return undefined. (#36642)

- Improve performance and memory consumption for content editor mode. (#37236)

- Fixes an issue in which the NVDA screen reader was announcing 'clickable' after each text line. (#38069)

- Fixes an issue where `doNotScroll` might not work properly for some versions of firefox. (#36943)

- Fixes an issue where link annotations would not appear in the annotations sidebar even when filtered in. (#37813). (#37813)

- Fixes an issue where the Stamp Annotations dialog title would appear clipped in Windows browsers. (#33978)

- Fixes an issue where the form creator popover would not close if a widget annotation with error was deleted. (#36700)

- Fixes an issue where the link tool would show up in spite of not being enabled. (#37326)

- Fixes an issue where the note or comment annotations were not created at the correct place if the page was zoomed. (#37960, #38039)

- Updates the default value of the `NutrientViewer.Options.BREAKPOINT_MD_TOOLBAR` constant to 1070px. (#38593)

### Model

- API: Adds annotationNote.hover and annotationNote.press events. (#37132)

- API: Adds NutrientViewer.Configuration#baseCoreUrl to allow requesting Core assets from a different URL in Standalone. (#37652)

- API: Adds a new helper method `NutrientViewer.Annotations#rotate()` to easily apply free rotation to the annotations that support it. (#38337)

- Adds UI for rotating Text, Stamp and Widget Annotations. (#32408)

- Adds support for the non-standard imagedata XFDF element in stamp annotations. (#36518)

- Update libexpat to version 2.5.0. (#37257)

- Updates Harfbuzz to 6.0.0. (#38024)

- Fixes a crash while redacting documents containing the ' PDF operator. (#36778)

- Fixes an issue when using PrintMode.DOM adds extra page in Safari and Firefox. (#37238)

- Fixes an issue where JPEG2000 images were rendered blurry. (#37829)

- Fixes an issue where digitally signed documents could not be exported without the Digital Signatures license component. (#37982)

- Fixes an issue where form field values would not be updated after performing actions in form fields with scripts. (#37303)

- Fixes an issue where memory usage was very high when searching large documents. (#37893)

- Fixes an issue where new radio form fields values would be wrong after exporting. (#37851)

- Fixes an issue where paths in content may not be rendered. (#35988)

- Fixes an issue where printing a document with multiple page orientations results in pages that don't fit the whole page. (#32291)

- Fixes an issue where redaction draws invalid black boxes on the page. (#37863)

- Fixes an issue where the SDK would attempt to set the form field value of a programmatically created form field before it was available. (#37791)

- Fixes an issue where the font information for annotations wasn't loaded correctly. (#36933)

- Fixes an issue where the unicode checkmark character wasn't rendered correctly. (#36785)

- Fixes crashes related to font loading in specific documents. (#36284)

## 2022.5.5 — 20 Dec 2022

No Web-specific changes in this version.

## 2022.5.4 — 20 Dec 2022

No Web-specific changes in this version.

## 2022.5.3 — 19 Dec 2022

### UI

- Adds a notification tooltip when activating a text block for content editing with missing fonts. (#37595)

- Adds buttons to set the font as italic or bold for content editing. (#37230)

- Adds specific licensing support for Salesforce. (#37774).

- Adds support for selecting words by double clicking/tapping on content editor mode. (#37707)

- Improve performance and memory consumption for content editor mode. (#37236)

- Show no value in the color dropdown when a region of text with multiple colors is selected while on content editor mode. (#37234)

- Fixes an issue in which content editor didn't work without an annotations license. (#37327)

- Fixes an issue in which the content editor caret wasn't visible on Firefox. (#37506)

- Fixes an issue where link annotations would not appear in the annotations sidebar even when filtered in. (#37813).

### Model

- API: Adds NutrientViewer.Configuration#baseCoreUrl to allow requesting Core assets from a different URL in Standalone. (#37652)

- Fixes an issue where JPEG2000 images were rendered blurry. (#37829)

- Fixes an issue where paths in content may not be rendered. (#35988)

- Fixes an issue where redaction draws invalid black boxes on the page. (#37863)

- Fixes an issue where the font information for annotations wasn't loaded correctly. (#36933)

## 2022.5.2 — 5 Dec 2022

### UI

- Adds buttons to set the font as italic or bold. (#37230)

- Adds missing ARIA roles to elements that contained accessibility names but no role. (#37204)

- Adds support for date text widget annotations in the form creator UI. (#37387)

- Adds support for showing no value in the color dropdown when a region of text with multiple colors is selected while in content editor mode. (#37234)

- Fixes an issue in which content editor didn't work without an annotations license. (#37327)

- Fixes an issue in which the content editor caret wasn't visible on Firefox. (#37506)

### Model

- Adds missing public CSS classes for the document editor UI footer items. (#35903)

## 2022.5.1 — 15 Nov 2022

### UI

- Fixes an issue where the cropping tool broke when dragged outside the frame. (#37076)

- Fixes an issue where the cropping tool did not take rotation into account. (#34660)

- Fixes an issue where the cropping tool stopped working. (#34499, #35255)

- Fixes an issue where deleting an annotation while being dragged prevented subsequent interaction. (#36823)

- Fixes an issue where the form creator popover did not include advanced section for signature widgets. (#36230)

- Fixes an issue where the link tool showed up when disabled. (#37326)

- Fixes a layout issue where the bounding box of a date picker form field was smaller than the actual form. (#36833)

### Model

- Adds `annotationNote.hover` and `annotationNote.press` events to the API. (#37132)

- Adds support for serializing and deserializing annotations with measurement info to the XFDF format. (#36936)

- Improves calculation of line height when a line is wrapped in a multi-line text form. (#36385)

- Improves compatibility with other PDF software when rendering multi-line form field text. (#37072)

- Fixes a crash while redacting documents containing the ' PDF operator. (#36778)

- Fixes an issue where form field values were not updated after performing actions in form fields with scripts. (#37303)

- Fixes an issue where printing a document with multiple page orientations resulted in pages that don't fit the whole page. (#32291)

- Fixes an issue where redacting certain documents rendered some document pages blank. (#35776)

- Fixes crashes related to font loading in specific documents. (#36284)

## 2022.5.0 — 2 Nov 2022

_See the [announcement post](/blog/pspdfkit-web-2022-5-content-editor-and-measurement-tools/)._

### UI

- Fixes an issue where the annotations fully overlapped when pasted on the same page. (#36344)

- Fixes an issue where the page loading indicator would not be visible when page preview rendering was disabled. (#36864)

- Fixes an issue where the required property toggle wasn't working properly in form creator. (#36695)

### Model

- Adds Hebrew localization. (#36047)

- Adds an optional `preserveInstantJSONChanges` flag to `instance.exportPDF()` in Standalone. (#35129)

- Adds specific licensing support for SharePoint Online. (#36657)

- Adds support for converting multi-image TIFF files to multi page PDFs. (#36108)

- Adds support for customizing the inline toolbar shown when selecting text on a document. (#36197)

- Adds support for rendering button variant appearance for rollover and down states in Standalone. (#36517)

- Removes support for Internet Explorer 11. (#36401)

- Updates PDFium to version c3451daffa0e96af95b856406668e6188cb139d0. (#36256)

- Updates SQLite to version 3.39.3. (#36337)

- Updates libexpat to version 2.4.9. (#36612)

- Updates the HarfBuzz library to 5.2.0. (#36547)

- Updates the HarfBuzz library to version 5.1.0. (#35186)

- Fixes an issue where the `TextSelection` class was exported with the wrong `PublicTextSelection` name instead. (#36673)

- Fixes an issue where the event listener payload for the `textSelection.change` event was wrongly typed. (#36673)

- Fixes an issue where the time preset in the redaction tool may miss valid matches. (#36484)

## 2022.4.3 — 28 Sep 2022

### UI

- Fixes an issue where document permissions would not be respected on load. (#34056)

- Fixes an issue where the Document Comparison magnified page would appear blurry on Chrome. (#36483)

- Fixes an issue where the viewer would crash when changing the line style after changing the annotation type. (#36437)

### Model

- Fixes an issue where form field flags weren't preserved correctly when repairing form fields. (#33878)

- Fixes an issue where `NutrientViewer.load()` would not resolve when `Configuration.autoSaveMode` was set to `NutrientViewer.AutoSaveMode.DISABLED` in Standalone mode. (#36466)

- Fixes an issue where widgets' appearance would not be refreshed after changing its form field's `readOnly` property. (#36662)

## 2022.4.2 — 15 Sep 2022

### UI

- Fixes an issue in which the page scrolled incorrectly when too many comments were present in the same section. (#34200)

- Fixes an issue where ink annotations with blend mode set would appear opaque in eraser mode on Safari. (#36160)

### Model

- Fixes an issue where AP streams weren't reliably generated for form text fields. That resulted in other readers potentially not showing the text. (#36236)

- Fixes an issue where certain documents could cause a crash when opening them. (#36272)

- Fixes an issue where data loss occurred when opening an exported document in another viewer. (#33940)

- Fixes an issue where overflowing text logic behaves differently on different zoom levels. (#34051)

- Fixes an issue where signature appearance streams weren't correctly generated when using the form creator. (#36274)

- Fixes an issue where temporary files could have been written into the root folder. (#36239)

- Fixes an issue where widgets with duplicate ids would not be rendered. (#36360)

## 2022.4.1 — 29 Aug 2022

### UI

- Adds optional rendering of comments in the annotations sidebar. (#36101)

### Model

- Adds a NutrientViewer.defaultAnnotationsSidebarContent constant with a list of classes to be shown in the annotations sidebar. (#36101)

- Adds a `sidebarOption` member to `NutrientViewer.ViewState` that contains customization options for sidebars. (#36101)

## 2022.4.0 — 23 Aug 2022

_See the [announcement post](/blog/pspdfkit-web-2022-4-media-annotations/)._

### UI

- Fixes an issue in which the page scrolled incorrectly when too many comments were present in the same section. (#34200)

- Fixes an issue where Safari would print a blank page. (#31064)

- Fixes an issue where cancelling printing would disable panning. (#35610)

- Fixes an issue where cloudy and dashed annotations would be wrongly displayed in the annotation sidebar. (#35630)

- Fixes an issue where highlight annotations would appear opaque in some Safari versions. (#35932, #35831)

- Adds the ability to display video or audio files embedded in a document by adding support for MediaAnnotations. (#33705)

- Deprecates support for Internet Explorer 11. This is the last release of PSPDFKit for Web to be compatible with IE11.

### Model

- Adds support for widget annotations additionalActions pointer event types `onPointerDown`, `onPointerUp`, `onPointerEnter` and `onPointerLeave`. (#35987)

- Fixes an issue where dates weren't parsed correctly due to the parser being too strict. (#34079)

- Fixes an issue where font styles weren't always discovered correctly. (#35955)

- Fixes an issue where setting the ink annotation preset would break the UI if the eraser width was not set. (#35956)

- Fixes an issue where undoing with the UI would fail after modifying the property of an annotation to be created. (#36020)

## 2022.3.2 — 4 Aug 2022

### UI

- Fixes an issue in which it was not possible to use custom icons for built-in annotation toolbar items. (#35544)

- Fixes an issue where SDK would show `NaN` for some form fields. (#34017)

## 2022.3.1 — 21 Jul 2022

### Model

- Improves performance of opening documents with large page count. (#34881)

- Fixes an error "The timestamp token couldn't be parsed" that may appear with some digital signature timestamps. (#35394)

- Fixes an issue when importing a InstantDocument JSON where both a form field and a form annotation were modified at the same time. (#35454)

- Fixes an issue where drawing would sometimes fail when scribbling was enabled in iOS 14+ devices. (#33908, #34015, #34387)

- Fixes an issue where modifying a widget would incorrectly modify its default appearance. (#35473)

- Fixes an issue where programmatically setting the value of a radio button form field would throw an error. (#35468)

## 2022.3.0 — 28 Jun 2022

_See the [announcement post](/blog/pspdfkit-web-2022-3-new-pdf-form-creator-ui/)._

- Adds Czech, Slovak, and Slovenian localizations for redaction and signing. (#927)

### UI

- Adds a built in Form Creator UI, to add, modify and delete widget annotations and form fields. (#34251)

- Adds new annotation toolbar buttons for rotating image annotations with the UI. (#25264)

- Fixes an issue in which comment threads were not restored when undoing the deletion or redoing the creation of comment marker annotations. (#34636)

- Fixes an issue where `annotations.press` event was fired twice if user called `preventDefault` in the listener. (#30916)

- Fixes an issue where `borderColor` with value `null` was not treated as transparent. (#34809)

- Fixes an issue where `borderWidth` defaulted to `1px` if `borderStyle` and `borderColor` were specified. (#34798)

- Fixes an issue where radio buttons would not respect set `backgroundColor`. (#35045)

- Fixes an issue where the loading indicator didn't show the correct progress. (#32124)

- Fixes an issue where the sidebar handle was not accessible via keyboard. (#33531)

### Model

- Adds support for annotation `HideAction` action type. (#25376, #33830)

- Adds support for preventing individual annotation changes from being tracked in the undo redo history. (#34675)

- Adds support for rendering annotations of unknown or unsupported types. (#29992)

- Adds support to add, remove or modify the colors displayed in the color dropdowns using NutrientViewer.Configuration#annotationToolbarColorPresets. (#32893)

- Adds the `buttonLabel` property to `NutrientViewer.FormFields.ButtonFormField.`. (#34787)

- Adds the ability to select any color using the native color picker UI in our built-in color picker dropdown. (#33067)

- Improves XFDF serialization of ink annotations by including their variant. (#34354)

- Improves performance by utilizing WebP for rendering where possible. (#34744)

- Fix for when AP streams are not updated when changing values and updating form fields. (#33864)

- Update boost to 1.79.0. (#34723)

- Updates the behavior of note, comment, and annotation note icons to keep dimensions persistent across zoom levels. (#33563)

- Updates the Freetype library to version 2.12.1. (#34326)

- Updates the HarfBuzz library to version 4.1.0. (#33105)

- Updates the Harfbuzz library to version 4.2.0. (#33765)

- Updates the Zlib library to version 1.2.12. (#34305)

- Fixes a layout inconsistency by unifying the color pickers in Electronic Signature UI for small screens. (#34338)

- Fixes a problem where the outline elements of some documents did not point to the correct page. (#32970)

- Fixes a regression where documents with a corrupt page will not open. (#33783)

- Fixes an issue running OCR on a page that contains an image with no text. (#31709)

- Fixes an issue when trying to run OCR on a blank page. (#33771)

- Fixes an issue where IE11 would sometimes throw an error when loading documents in Standalone deployments. (#34437)

- Fixes an issue where `excludeAnnotations` needed to be set explicitly to `false` for printing PDF with annotations. (#34545)

- Fixes an issue where an extra blank page would be printed for some documents in Chrome in DOM print mode. (#30877)

- Fixes an issue where annotations of unknown types would not be rendered. (#25639, #26635, #29344)

- Fixes an issue where area redaction annotation toolbar disappears when a redaction annotation is created. (#32964)

- Fixes an issue where cancelling bookmark edition would throw an error. (#33697)

- Fixes an issue where document editor did not work without the annotation component in the license. (#25322)

- Fixes an issue where form buttons weren't able to import images with buttonImportIcon if they were located on pages other than the first. (#33364)

- Fixes an issue where form field values would appear clipped after being edited. (#34691)

- Fixes an issue where form fields were showing NaN (not a number) if the form value could not be formatted correctly. This returns an empty string now and shows an error message in the console. (#34017)

- Fixes an issue where hidden widgets would not be rendered when the hidden flag was set to false. (#32825)

- Fixes an issue where interaction with some forms would perform poorly in Standalone mode. (#34362)

- Fixes an issue where loading a document would sometimes fail when rendering AP streams. (#33996)

- Fixes an issue where rotated signatures would appear blurry. (#30639)

- Fixes an issue where setting `readOnly` to true on a form field clears its value. (#33866)

- Fixes an issue where the wrong text was highlighted when searching. (#33867)

- Fixes an issue where under certain situations page labels would not be shown in the page indicator. (#34235)

- Fixes an issue where updating form field properties other than its value triggered `formFieldValues.update` event. (#32886)

- Fixes an issue where updating multiple form fields or widgets at the same time would freeze the viewer. (#34731)

- Fixes an issue where we didn't throw an error when annotations other than Widgets were assigned to form fields. (#32316)

- Fixes an issue where we didn’t register an `annotationPresets.update` event when changing the ink eraser width. (#32553)

- Fixes corruption of CMYK colorspace images in PDFs after redaction. (#34453)

- Fixes issues surrounding rendering Devanagari script. (#33753)

- Fixes license checking by making bundle id verification case insensitive. (#33478)

- Fixes parsing of page labels with indirect objects in the number tree. (#33657)

## 2022.2.3 — 31 May 2022

### UI

- Fixes an issue where some checkbox and radio form fields AP streams would show an incorrect value. (#34341)

## 2022.2.2 — 12 May 2022

### UI

- Fixes an issue that prevented opacity slider to work properly for image and stamp annotations. (#34193)

- Fixes an issue where overflowing check calculations for multiline text form fields fail. (#33766)

- Fixes an issue where form fields were not responding on Firefox and Safari. (#33112)

- Fixes an issue where programmatically created checkboxes/radio buttons did not work once saved and then reopened. (#33070)

- Fixes an issue where some documents including scripts would take too long to open. (#32815)

- Fixes an issue where users were not able to crop document after scroll. (#33932)

### Model

- Fixes an issue where `instance.save()` would take very long to resolve if the changes were already saved. (#33635)

- Fixes an issue where the viewer's iframe CSP policy would differ in Firefox. (#32900)

- Fixes an issue where certain form fields weren't repaired correctly. (#33878)

## 2022.2.1 — 5 Apr 2022

No web-specific changes in this version.

## 2022.2.0 — 22 Mar 2022

_See the [announcement post](/blog/pspdfkit-web-2022-2-annotation-toolbar-customization/)._

- Fixes a crash when deserialising image annotations from JSON that references an incompatible existing annotation from the PDF. (Z#28946, #32861)

- Fixes an issue that prevented loading a layer with forms imported from Instant JSON when Instant support was disabled. (#32506)

- Adds support for validating RSA-PSS digital signatures. (#33006)

- Updates the HarfBuzz library to 3.2.0. (#32690)

- Updates STB to 2.27. (#32326)

### UI

- Adds support to add, remove or modify annotation toolbar items using `NutrientViewer.Configuration#annotationToolbarItems` and `NutrientViewer.Instance#setAnnotationToolbarItems`. (#32876)

- Adds support to cut, copy, paste or duplicate annotations using keyboard shortcuts. (#32595)

- Improves ink signature UI resizing by keeping its aspect ratio when resized with any resize handler. (#32954)

- Improves the UI of the focused and active state of highlight annotations. (#32614)

- Fixes an issue where customized color presets would not be honoured in the color dropdown input. (#31544)

- Fixes an issue where pointer devices were sometimes wrongly detected as touch devices in the Document Comparison UI. (#33228)

- Fixes an issue where selectable text would be rotated when the page had been rotated regardless of the current text rotation. (#30027)

- Fixes screen jumping up when clicking on text highlight button. (#32656)

### Model

- API: Adds form field serializer and deserializer. (#32806)

- Adds a built in UI annotation toolbar button to apply redactions. (#32807)

- Adds a visual feedback when an annotation is focused from the annotation sidebar, in read only mode. (#25338)

- Adds more detailed logging for signature verification errors during development of custom signing implementations. (Z#28856)

- Adds six new variant toolbar buttons for cloudy and dashed rectangle, ellipse and polygon annotations. (#32829)

- Adds support to exclude annotations when printing or exporting the document. (#32406)

- Improves Instance.setFormFieldValues() so it can be awaited to ensure form field value synchronization. (#31892)

- Updates Duktape to version 2.7.0. (#33161)

- Updates SQLite3 to version 3.38.0. (#33239)

- Updates XMP toolkit to version 2022.02. (#32824)

- Updates libexpat to 2.4.6. (#33300)

- Updates libtiff to version 4.3.0. (#33050)

- Fixes a glyph rendering issue when new lines are used in form fields. (#31733)

- Fixes a problem where some form fields with JavaScript formatting scripts may be incorrectly formatted with thousands separators. (#32596)

- Fixes a problem where the Sign overlay of unsigned signatures may incorrectly appear in some situations. (#32310)

- Fixes a rare crash that happened when loading fonts. (#33110)

- Fixes a stability issue accessing the file system that can happen in rare situations. (#32467)

- Fixes an issue for which [`annotationPresets.update`] listener would not register events for Stamp and Image Annotations. (#32560)

- Fixes an issue where adding a digital signature may invalidate previous ones because of some spurious rounding-related changes to the page boxes. (#32952)

- Fixes an issue where an old trailer was loaded in PDFs with hybrid cross-reference tables causing old information to be shown. (#32243)

- Fixes an issue where custom rendered annotations would not appear customized under some circumstances. (#33123)

- Fixes an issue where objects were rendered with the wrong color due to non-compliant color values. (#30102)

- Fixes an issue where read-only signature fields may incorrectly show a "Sign" overlay. (#32310)

- Fixes an issue where the magnified area would not match the hovered area in the Document Comparison UI when the toolbar was hidden. (#33389)

- Fixes an issue where the text of the Document Comparison UI user hint dialog would overflow the container. (#33401)

### Examples

- Adds a catalog example showcasing the usage of PSPDFKit for annotating Construction blueprints. (#33109)

- Adds a new Electron example to keep a remote module compatible version available. (#32855)

- Updates the Electron example to be context isolation compatible. (#32855)

- Fixes an issue where form field value editing with the UI was incorrectly disabled for certain document permissions. (#25332)

## 2022.1.3 — 4 Mar 2022

### UI

- Fixes an issue where customized color presets would not be honoured in the color dropdown input. (#31544)

### Model

- Updates libexpat to 2.4.6. (#33300)

- Fixes a problem where some form fields with JavaScript formatting scripts may be incorrectly formatted with thousands separators. (#32596)

## 2022.1.2 — 8 Feb 2022

### Model

- Updates Expat to 2.4.4. (#32841, #32790)

- Fixes an issue where some documents cannot be uploaded or opened due to media box reading. (#32764)

- Fixes an issue where the redaction tool may leave some old PDF object references if the page contents are an array of content streams. (#32926)

## 2022.1.1 — 19 Jan 2022

- Fixes an issue where documents uploaded prior to 2022.1.0 wouldn't load. (#32681)

## 2022.1.0 — 18 Jan 2022

_See the [announcement post](/blog/pspdfkit-web-2022-1-new-ui-customization-api/)._

**Note:** version 2022.1.0 contains a bug that was immediately fixed in the next version, 2022.1.1. Please use version 2022.1.1 instead of 2022.1.0.

### UI

- Fix distorted aspect ratio of stored image signatures on macOS Safari. (#30135)

- Fixes an issue where choice form field values would show the wrong value set when empty. (#31552)

- Fixes an issue where the page background would appear blurry on large size pages in low DPI screens. (#31098)

### Model

- API: Adds new [`NutrientViewer.Options#MIN_WIDGET_ANNOTATION_SIZE`](https://www.nutrient.io/api/web/NutrientViewer.Options.html#MIN_WIDGET_ANNOTATION_SIZE) preconfigurable setting. (#29886)

- API: Adds new [`NutrientViewer.ViewState#sidebarWidth`](https://www.nutrient.io/api/web/NutrientViewer.ViewState.html#sidebarWidth) property. (#32405)

- API: Adds the previous ViewState to the [`viewState.change`](https://www.nutrient.io/api/web/NutrientViewer.Instance.html#~ViewStateChangeEvent) event listener payload. (#32187)

- API: Adds [`Instance.transformRawToPageSpace()`](https://www.nutrient.io/api/web/NutrientViewer.Instance.html#transformRawToPageSpace) and [`Instance.transformPageToRawSpace()`](https://www.nutrient.io/api/web/NutrientViewer.Instance.html#transformPageToRawSpace) to convert coordinates between PDF and SDK spaces. (#32283)

- Adds [`NutrientViewer.Configuration#dateTimeString`](https://www.nutrient.io/api/web/NutrientViewer.ViewState.html#dateTimeString) to customize how dates are formatted in the UI. (#31810)

- Adds [`ViewState#canScrollWhileDrawing`](https://www.nutrient.io/api/web/NutrientViewer.ViewState.html#canScrollWhileDrawing) option to allow to use a pen device to draw ink annotations and also scroll without changing interaction mode on iOS devices. (#31382)

- Adds a `annotations.transform` event that is emitted whenever an annotation is dragged or resized. (#32365)

- Adds a new [`resolvedLayoutMode`](https://www.nutrient.io/api/web/NutrientViewer.ViewState.html#resolvedLayoutMode) property to the ViewState. (#30305)

- Adds support for annotations's `subject` (`Subj`) property. (#32345)

- Adds support for latest Electron versions. (#31732)

- Adds support for setting custom breakpoints allowing to control when the toolbar switches to responsive mode. (#29798)

- Adds support for setting the minimum resizable dimensions of widget annotations. (#29886)

- Adds support for totally or partially customizing the sidebar UI. (#31929)

- Adds the ability to keep the current tool active after creating an annotation, with the new `keepSelectedTool` API. (#30974)

- Improves manual text selection accuracy. (#25275)

- Improves the perceived performance of some document operations. (#31672)

- Improves the performance of image attachments loading and handling. (#30006)

- Improves the security by preventing JavaScript actions from opening URLs by default by means of the new [`Configuration#onOpenURI`](https://www.nutrient.io/api/web/NutrientViewer.Configuration.html#onOpenURI) setting. (#30433)

- Changes the Document Comparison toolbar button to be hidden by default. (#32353)

- Removes the deprecated `NutrientViewer.Configuration#pdf` property in favor of [`NutrientViewer.Configuration#document`](https://www.nutrient.io/api/web/NutrientViewer.Configuration.html#document). (#27387)

- Fixes an issue where form field values changed with the API would sometimes not be updated in the view. (#30841)

- Fixes an issue where image annotations from stamp templates would lose the description property. (#32446)

- Fixes an issue where missing translation reports would be logged in the browser console. (#31911)

- Fixes an issue where persisting dates or times in forms may be off by one hour in some situations. (#32201)

- Fixes an issue where setting event.value inside a validation script may not work as expected. (#31286)

- Fixes an issue where setting `treatImportedDocumentAsOnePage` to false when specifying an import document operation resulted in the opposite result. (#25310)

- Fixes an issue where the UTF-8 charset declaration was missing from the viewer document head. (#31867)

- Fixes an issue where the validation of some certificates didn't work correctly. (#32094)

- Fixes importing of Instant Document JSON where image annotations have been moved. (#31945)

- Fixes an issue where manual document alignment for the document comparison feature would produce incorrect results for rotated pages. (#31681)

- Fixes an issue that prevented loading a layer with forms imported from Instant JSON when Instant support was disabled. (#32506)

### Examples

- Adds a Vue 3 compatible example to the Vue.js example repo. (#32048)

- Adds an example showing how to integrate PSPDFKit for Web with a Nuxt.js project. (#32489)

- Updates the Angular example to be compatible with Angular 13. (#32047)

## 2021.6.2 — 15 Dec 2021

### Model

- Fixes an issue where annotations weren't always rendered in the correct z-order. (#31671)

- Fixes an issue where the appearance stream of unsigned signature fields wasn't rendered. (#31015)

- Fixes importing of Instant Document JSON containing image annotations onto a rotated page. (#32021)

- Fixes importing of Instant Document JSON containing multiple radio buttons of the same label. (#31855)

- Fixes importing of Instant Document JSON where image annotations have been moved. (#31945)

### Core

- Updates the HarfBuzz library to 3.1.0. (#31771)

- Fixes a memory leak when verifying digital signatures. (#31520)

- Fixes a memory leak when closing documents with form fields. (#31557)

## 2021.6.1 — 11 Nov 2021

No web-specific changes in this version.

## 2021.6.0 — 19 Oct 2021

_See the [announcement post](/blog/pspdfkit-web-2021-6-document-comparison-date-picker/)._

### UI

- Adds `Configuration#onAnnotationResizeStart` and `Instance#setOnAnnotationResizeStart` API that can be used to maintain annotation aspect ratio while resizing. (#30548)

- Adds date and time picker to help you fill date, time, or both in the form fields. (#30378)

- Adds the Document Comparison feature UI to Standalone mode. (#30383)

- Adds the `data-original-page-index` attribute to the thumbnails of document editor. (#30335)

- Fixes an issue where Font Size indicator wouldn't update correctly in Safari. (#30815)

- Fixes an issue where Ink annotations would get distorted when resizing. (#30753)

- Fixes an issue where annotations could not be correctly enlarged with the UI when constrained to the page bounds. (#30301)

- Fixes an issue where form fields would not be displayed if the document did not include annotations and form filling permissions. (#30954)

- Fixes an issue where stale AP Streams would be incorrectly displayed. (#30636)

### Model

- API: Adds the Document Comparison feature to Standalone mode. (#30383)

- Fixes an assertion if the rotation property was removed from an annotation. (#31173)

- Improves TypeScript support by exposing internal types. (#29517)

- Improves rendering non-latin text (like Arabic) when selecting specific fonts. (#30517)

- Reduces memory consumption when PDF objects need compressing. (#31317)

- Reduces memory consumption when encoding JPEG images. (#31205)

- Removes deprecated `Instance#createAnnotation`, `Instance#createBookmark`, `Instance#createFormField`, `Instance#saveAnnotations`, `Instance#saveBookmarks`, `Instance#saveComments`, `Instance#saveFormFields`, `Instance#saveFormFieldValues`, `Instance#updateAnnotation`, `Instance#updateBookmark`, `Instance#updateFormField`, `Instance#deleteAnnotations`, `Instance#deletebookmark`, `Instance#deleteFormField`, `Instance#ensureAnnotationSaved`, `Instance#ensureBookmarkSaved`, `Instance#ensureFormFieldSaved`, `Instance#hasUnsavedAnnotations`, `Instance#hasUnsavedBookmarks`, `Instance#hasUnsavedComments`, `Instance#hasUnsavedFormFieldValues` and `Instance#hasUnsavedFormFields` APIs - Please read migration guide for more details. (#27386)

- Updated FreeType to version 2.11.0. (#30900)

- Updated libjpeg-turbo to 2.2.1. (#30900)

- Updates HarfBuzz to 3.0.0. (#31113)

- Updates the HarfBuzz library to version 2.9.1. (#30624)

- Fixes a very occasional crash when parsing stamp annotations that contained images references to invalid indirect objects. (#31093)

- Fixes an issue seen where highlighted search results appeared offset when accented characters are present in the document. (#29661)

- Fixes an issue the appearance stream of unsigned signature fields wasn't rendered. (#31015)

- Fixes an issue where automatically extracting links would fail for multiple links in Standalone mode. (#30903)

- Fixes an issue where some form fields that contain a time may be incorrectly incremented when the field loses focus. (#30497)

- Fixes incorrect type signature of `textSelection.change` event. (#30642)

- Fixes possible undefined behavior validating digital signature data. (#31179)

## 2021.5.3 — 16 Sep 2021

No web-specific changes in this version.

## 2021.5.2 — 27 Aug 2021

### Model

- Fixes the 'automatic publicpath is not supported in this browser' error in non-browser environments. (#30723)

## 2021.5.1 — 9 Aug 2021

### Model

- Fixes an issue where a digital signature may incorrectly report a certificate validation error. (#30521)

- Fixes an issue where highlight annotations used the wrong blend mode after importing with Instant JSON. (#30537)

### Core

- Fixes a rare crash that may happen when rendering a PDF. (#29843)

- Fixes an issue where XFDF annotations like lines without an explicit `width` attribute were not rendered. In these cases, we now mimic Acrobats behavior and imply a line width of 1 pt. (#30291, Z#25968)

## 2021.5.0 — 26 Jul 2021

_See the [announcement post](/blog/pspdfkit-web-2021-5-document-crop-accessibility/)._

### UI

- Adds Toolbar Button for Document Crop (#29847)

- Adds localized accessibility descriptions to some UI elements. (#29810)

- Adds public CSS classes for radio and checkbox annotation controls. (#29581)

- Adds support for announcing changes in the Bookmarks sidebar to screen readers. (#29017)

- Adds support for note annotation's opacity property. (#29565)

- Adds support for rendering widget and shape annotations with a blend mode set. (#29582, #29081)

- Changes the default AP stream rendering mode to true for both Server and Standalone. (#29944)

- Fixes an issue that caused incorrectly rendering form widgets on rotated pages. (#28414)

- Fixes an issue where stamp templates would appear distorted in the stamp picker in IE11. (#29404)

- Fixes presets not correctly applying to image annotations. (#29136)

- Fixes thumbnail sidebar occasionally failing to scroll to current page. (#29372)

- Adds infos for a11y technologies about the state of a button inside a dropdown. (#29022)

- Fixes a layout issue in the typed signatures modal in IE11. (#1234)

### Model

- API: Adds new method to Crop a single page or the whole document as well as listen to CropBox changes (#29847)

- Adds support for blend mode in all annotations when using Instant JSON. If `blendMode` is not specified, it defaults to `normal`. (#29582)

- Adds support for reading embedded files in the PDF. (#30145)

  - Adds `instance.getEmbeddedFiles` that can be used to get the information of all the embedded files in the PDF.
  - Adds the ability to fetch the contents of embedded files using `instance.getAttachment`.

- Adds the enums `BlendMode`, `LineCap` and `BorderStyle` to `PSPDFKit` namespace. (#29337)

- Improves the provided TypeScript declarations. (#29198)

- Removes unnecessary infos from the `storedSignatures.create` event image signatures payload. (#29553)

- Updates the HarfBuzz library to 2.8.2. (#30164)

- Fixes a problem where a PDF table of contents (outline) may link to the wrong page. (#30070)

- Fixes an issue where a JavaScript error would be triggered by very large resolution screens when using the InkAnnotation. (#29030)

- Fixes an issue where creating image annotations would fail with some JPEG images. (#29877)

- Fixes an issue where fonts were not correctly included in the PDF resulting in wrongly rendered free text annotations. (#30115)

- Fixes an issue where imported form fields could not be updated. (#29533)

- Fixes an issue where importing a 'goToRemote' without a page index would fail. (#29616)

- Fixes an issue where importing unknown actions using Instant JSON failed. (#29814)

- Fixes an issue where new bookmarks would point to the wrong page index if the document was scrolled while creating it. (#29750)

- Fixes an issue where redactions of paths could fail with `Coordinate outside allowed range` if the path coordinates were very large. (#29791)

- Fixes an issue where the default values for border and outline colors would not be applied to redaction annotations from the document. (#29519)

- Fixes an issue where unmounting an instance would trigger a JavaScript error. (#29660)

- Fixes an error during annotation rendering that would occur in certain circumstances with Instant enabled. (#29345)

- Adds accessibility announcements for total number of search results when searching the document through UI (#30191).

- Fixes an issue where assistive technologies on Windows did not announce when an image annotation is deleted. (#29020)

### Core

- Fixes an issue where the Instant JSON would contain redundant data after removing a form field. (#29671)

## 2021.4.3 — 14 Jul 2021

### UI

- Fixes an issue where search result label was displayed on the PDF page. (#29889)

## 2021.4.2 — 16 Jun 2021

### UI

- Adds accessibility announcements for new image annotations and annotations deleted with the UI. (#29020)

- Adds missing accessibility labels to text annotation alignment UI controls. (#29019)

- Adds support for search results announcement by speech readers. (#29018)

- Fixes an issue in Chrome where the text selection would show wrong colors. (#29703)

- Fixes an issue in which the signature picker list does not scroll on touch devices. (#29294)

- Fixes an issue where printing would sometimes fail on Chrome Android. (#28658)

- Fixes an issue where some elements would not show a focus outline when focused. (#29016)

- Fixes an issue where the UI would become unresponsive after erasing annotations in pages with many or very dense ink annotations. (#29632, #29576)

- Fixes an issue where the ink and type signature input fields could not be focused. (#29015)

- Fixes an issue where the old CSS files were cached in some cases even after updating the SDK. (#29535)

### Model

- Improves the TypeScript declarations of the public APIs. (#29558)

- Fixes a potential RCE while using PSPDFKit for Web in an Electron application. Thanks to Luigi Gubello ([@evaristegal0is](https://twitter.com/evaristegal0is)) for reporting the issue. (#29723)

- Fixes a problem where a document signed with a timestamp may not validate correctly. (#29380)

- Fixes a problem where an ECDSA signature in IEEE 1363 format may not validate correctly. (#29380)

- Fixes an issue where OCR would fail if no text is on the page. Now the call returns successfully. (#29527)

- Fixes an issue where annotations imported during `NutrientViewer.load` did not import correctly. (#29257)

- Fixes an issue where checking different radio buttons with the same value was not possible. (#29379, #26454)

- Fixes an issue where the default signing fonts were not bundled with NutrientViewer. (#29764)

- Fixes an issue where the image attachment for a imported XFDF stamp annotation couldn't be found. (#29665)

- Fixes an issue where widget annotations from the document were not correctly deleted in Standalone deployments. (#29749)

- Fixes an issue with OCR where no text is found if the text on the page is relatively large. (#29512)

- Fixes an issue where it wasn't possible to set a form field value to an empty string. (#29610)

- Fixes an issue where assistive technologies did not announce when an image annotation is deleted. (#29020)

## 2021.4.1 — 26 May 2021

### Model

- Fixes an issue that prevented using certain features without a license key. (#29589)

## 2021.4.0 — 6 May 2021

_See the [announcement post](/blog/pspdfkit-web-2021-4-undo-redo-document-editor-customization/)._

### UI

- Adds new optional toolbar buttons to undo and redo annotations actions. (#28389)

- Added support for customising the document editor toolbar and footer. (#28701)

- Fixed an issue where old cached CSS file was loaded even after the SDK was updated. (#28963)

- Fixes an issue in which text selection does not work correctly on iOS Safari if `Configuration.preventTextCopy` is set to true. (#28488)

- Fixes an issue where new Stamp annotations would not be rendered with autoSaveMode disabled in Standalone mode. (#29292)

- Fixes an issue where zooming in on a page would shrink the background image. (#28344)

- Fixes an issue where image annotations would flicker when manually resized. (#29093)

- Fixes an issue where list boxes would not render text when a item is selected if there was no `DA` field present. (#28536)

- Fixes an error during annotation rendering that would occur in certain circumstances with Instant enabled. (#29345)

- Fixes an issue where stamp templates would appear distorted in the stamp picker in IE11. (#29404)

### Model

- API: Adds new methods to undo and redo annotations actions. (#28389)

- Adds support for toggling the case sensitiveness of searches, including the search and redact feature. (#28814)

- Adds support for opening TIFF image documents. (#28758)

- Adds the enums `BlendMode`, `LineCap` and `BorderStyle` to `PSPDFKit` namespace. (#29337)

- Enables using PSPDFKit in trial mode without a license key. (#28341)

- Enables JavaScript actions by default in Standalone mode. (#28570)

- Fixes a issue in the text parser where space characters were being omitted from the returned text. (#28886)

- Fixes a problem where the 'name' property of the PDF JS 'field' object may not return a correct value when the field is part of a hierarchy. (#27770)

- Fixes a rendering issue for specific documents that have font resources with widths that are too small to render. (#28103)

- Fixes an issue in which the view state couldn't be updated if 'download' JWT permissions were missing. (#28596)

- Fixes an issue where JavaScript code was not executed correctly. (#29283)

- Fixes an issue where form fields are not interactive after a document with JavaScript is merged with another document. (#28052)

- Fixes an issue where new text markup annotations would be created with the wrong default color. (#29308)

- Fixes an issue where not all data was shown on a small amount of documents containing hybrid cross-reference streams. (#28713, #24258)

- Fixes an issue where paths could accidentally be filled in, even though only the border should have been painted. (#28699)

- Fixes an issue where redaction annotations without color set would not be deserialized. (#29276)

- Fixes an issue where some saved documents contained a xref table with more than one subsection. This may have caused problems if the document was signed multiple times, for example. (#28755)

- Fixes an issue where the bounding box of automatically generated link annotations wasn't large enough. (#27608)

- Fixes an issue where the framework may write unnecessary entries to the PDF trailer dictionary. (#28755)

- Fixes an issue where widgets and form fields could not be imported from InstantJSON in Standalone mode. (#28892)

- Improves the provided TypeScript declarations. (#29198)

### Core

- Adds support for specifying blend mode for shape annotations in Instant JSON. (#29081)

- Fixes an issue where flattened Instant Comments on rotated pages didn't correctly display text. (#28272)

- Fixes an issue where setting a stamp annotation template with a PDF attachment didn't work. (#27396)

- Updates FreeType to 2.10.4.179. (#28676)

- Updates HarfBuzz to 2.8.0. (#28598)

- Updates the Botan library to 2.18.0. (#29123)

## 2021.3.0 — 31 Mar 2021

_See the [announcement post](/blog/pspdfkit-web-2021-3-electronic-signatures/)._

### UI

- Adds Electronic Signatures Component to create signatures by drawing, selecting an image file or typing text. (#27337)

- Adds new loading UI. (#28203)

- Fixes an issue where the default page cursor could not be overruled by the pan cursor nor setting it globally. (#28325)

### Model

- Adds `Configuration#electronicSignatures` API to adjust the configuration for Electronic Signatures. (#27337)

  - Adds `NutrientViewer.defaultElectronicSignaturesTabs` member for the default available tabs for signing.
  - Adds `NutrientViewer.defaultSigningFonts` member with the default fonts to offer on the 'Type' tab for signing.
  - Adds `Configuration#populateStoredSignatures` API to set the list of stored signatures.

  - Adds `Instance#getStoredSignatures` and `Instance#setStoredSignatures` to get/set stored signatures.

  - Adds `storedSignatures.create`, `storedSignatures.update`, `storedSignatures.delete` and `storedSignatures.change` events.

- Fixes a problem where some date/time form fields may be formatted incorrectly or their content may disappear momentarily when they lose focus. (#28056)

- Fixes an issue in Safari where some WebP images failed to render. (#28356)

- Fixes an issue where flattened Instant Comments on rotated pages didn't correctly display text. (#28272)

- Fixes an issue where negative values didn't include thousand separators when being formatted by AFNumber_Format in JavaScript. (#28188)

- Fixes an issue where text extracted from an image using OCR was not selectable on the macOS Preview.app. (#28329)

- Fixes an issue where an invalid digital signature may return the same error code more than once. (#27512)

- Fixes an issue where some digital signatures with indefinite length structures were not validated correctly. (#26983)

- Fixes an issue where some signatures with timestamps couldn't be parsed correctly and returned an error. (#28642)

### Examples

- Updates Electron dependency in Electron example to version 11.3.0. (#28324)

## 2021.2.0 — 11 Mar 2021

_See the [announcement post](/blog/pdf-generation-now-available-in-pspdfkit-processor-and-pspdfkit-for-web/)._

- Adds support for PDF generation in Server-backed deployments. (#26791)

### UI

- Fixes an issue where the thumbnails sidebar would not scroll to the current page thumbnail. (#28066)

- Fixes an issue where widget annotations were disabled even when the user had fill permission when Collaboration Permissions was enabled. (#28270)

### Model

- Fixes an issue when setting form field datetimes that have JavaScript formatting. (#27939)

- Fixes an issue where `formFieldValues.update` would be dispatched for initial form field values. (#28224)

- Fixes an issue where calling `instance.getAttachment()` for an instantJSON attachment would throw an error. (#28241)

- Fixes an issue where deleting a note annotation could incorrectly print an error message to the log. (#28240)

- Fixes an issue where `instance.getFormFieldValues()` would return an empty object if `instance.getFormFields()` had not been called before. (#28224)

### Examples

- Adds an optional 'mode' URL query parameter to force using a specific backend when accessing through a link. (#28215)

## 2021.1.1 — 18 Feb 2021

### Model

- Fixes an issue where using `"all"` permission in the JWT would cause authentication failure. (#28213)

## 2021.1.0 — 16 Feb 2021

_See the [announcement post](/blog/pspdfkit-web-2021-1-collaboration-permissions/)._

- Adds support for Collaboration Permissions. (#26818)

### UI

- Adds annotation variant types to the annotation sidebar. (#25279)

- Adds export PDF button to toolbar. (#26642)

  - Adds `export-pdf` button type to `NutrientViewer.defaultToolbarItems`.
  - Adds `allowExport` to `ViewState` that controls whether the export button should be enabled.

- Adds support for correctly rendering widget annotations content on rotated pages. (#27012)

- Adds support for enforcing creator_name set on the JWT. (#27366)

- Improves performance in `NutrientViewer.ScrollMode.PER_SPREAD` by preloading neighboring pages. (#27574)

- Improves performance when zooming and scrolling in touch and low end devices. (#25302)

- Added missing translation for 'Icon' and 'Export'. (#27235)

- Stops displaying annotation notes for link annotations. (#27819)

- Fixes an issue when scrolling through a large document using the page down/up keys. (#27526)

- Fixes an issue where annotation toolbar buttons would not be highlighted when the corresponding interactionMode was modified using the API. (#27277, #26906)

- Fixes an issue where failing to render an annotation AP stream would prevent rendering other AP streams as well. (#27875)

- Fixes an issue where form field values changed in instantJSON would not be initially rendered. (#27564)

- Fixes an issue where image annotations would not be refreshed in the UI after being updated in Standalone mode. (#27410)

- Fixes an issue where it was possible to erase read-only ink annotations. (#27067)

- Fixes an issue where navigation via keyboard in document editor and thumbnails sidebar stopped working after scrolling a certain amount. (#26913)

- Fixes an issue where pages would appear blurry on non HiDPI screens in Server mode in Chrome. (#27129)

- Fixes an issue where setting `NutrientViewer.ViewState#interactionMode` did not respect `NutrientViewer.ViewState#readOnly` setting. (#27443)

- Fixes an issue where some toolbar icons would not be visible in certain Edge Legacy versions. (#27327)

- Fixes an issue where switching toolbar items with active responsive group could lead to a crash. (#27375)

- Fixes an issue where text and note annotations would fail to wrap long words when editing in IE11 and Edge Legacy. (#27223)

- Fixes an issue where text selection disappeared temporarily while dragging over area without text. (#25324)

- Fixes an issue where the viewer would flicker when certain annotation toolbars appeared in IE11. (#27241)

- Fixes an issue where forms could not be filled in on document with fill forms permission but annotations were set to read only. (#25323)

- Fixes an issue with incorrectly placed annotation when dragging during zoom level change. (#26609)

- Fixes an issue where combo boxes (`NutrientViewer.FormField.ComboBoxFormField`) were cut-off when overflowing the edge of a page. (#25265)

- Fixes an issue where line breaks and repeating spaces were not displayed in comments. (#27998)

- Fixes an issue where move page dialog inside document editor could not get focus on iPad with hardware keyboard connected. (#27282)

- Fixes an issue where the pages would disappear from the viewport when resizing the window in Safari 14.0.3. (#28128)

### Model

- Fixes an issue where two form fields with the same name could be created in Server-backed deployments. (#27891)

- Fixes an issue where `instance.getComments()` did not return correct result if called just after load. (#27359)

- Fixes an issue where a JavaScript error would be triggered when opening the document. (#25235)

- Fixes an issue where rendering could fail after removing a widget annotation. (#26857)

- Fixes an issue where setting interactionMode would override currentItemPreset. (#27289)

- Fixes an issue where the document JavaScript would not be executed after applying form field values changes from instantJSON. (#27629)

- Fixes an issue where the signature description was cut off in narrow signature fields. (#27540)

- Fixes an issue where trying to delete an annotation of unknown type in instantJSON would cause an error. (#27332)

- Fixes an issue where error message related to missing image documents license could have been thrown when opening corrupted files in standalone. (#27714)

### Core

- Adds a new document signature integrity status for when the digital signature type that is being validated is not supported. (#25030)

- Adds support for parsing multiple certificates inside a single `.pem` file. (#26396)

- Adds support for validating PAdES B digital signatures. (#25153)

- Improves font selection process for bold and italic fonts. (#26719)

- Improves how certificate expiration in digital signatures is handled. (#27047)

- Improves how the endPageIndex works when using NutrientViewer.Instance#search. (#25309)

- Improves simplified and traditional Chinese font selection. (#26674)

- Improves memory usage when loading PDF documents by 15% to 35%, depending on the document. (#27182)

- Improves handling of `rootId` changes on an existing comment si it throws an error. (#27856)

- Fixes an issue where certain timestamps would not be preserved because of an incorrect sanitization step. (#27720)

- Fixes an issue where documents with forms would update values very slowly on Standalone mode. (#22786)

- Fixes an issue where form calculation was triggered when setting an empty string on a form field that didn't have a value. (#26345)

- Fixes a problem where signing a document again after filling a form field may invalidate existing digital signatures. (#25637)

- Fixes an issue where digital signatures wouldn't show framework version numbers when inspected using third party software. (#26183)

- Fixes `customData` being overwritten in the root annotation of an Instant Comment thread when comments are added. (#27570)

- Fixes an issue where a new trial activation key couldn't be used unless the license data was cleared from the database first. (#27298)

- Fixes an issue where languages with characters outside of the Latin1 range could not be encoded in modal dialogs. (#27379, #27565)

- Fixes an issue where some DER-encoded signatures may not be validated correctly. (#25757)

- Fixes an issue where the signature reason, name or location may not appear correctly if they contain non-ASCII characters. (#26671)

- Fixes an issue where paths overdrew, resulting in incorrect shapes. (#27330)

- Fixes an assert that was triggered by malformed documents that contained fonts that were not indirect objects. (#26450)

- Fixes rendering a wrong color if the color was using a ICC color profile and the color was out of bounds. (#26535)

### Examples

- Adds a text filter to the catalog examples menu. (#27669)

- Adds a Collaboration Permissions example to the catalog. (#27513)

- Updates the Wasm Benchmark example: correct capitalization and check if Google Analytics is loaded. (#26527)

- Fixes an issue in the Gatsby example where the PSPDFKit instance would fail to initialize sometimes. (#28120)

## 2020.6.4 — 12 Jan 2021

### UI

- Improves ink drawing performance. (#27035)

- Fixes an issue where document editor move dialog did not handle focus correctly. (#27282)

- Fixes an issue where thumbnails were not displayed initially after opening the document editor in Chrome. (#26952)

- Fixes an issue with the caret position and autoselection of the content of text annotations in Safari. (#4224)

- Fixes an issue with the initial selection when using `NutrientViewer.instance#setEditingAnnotation`. (#4224)

### Model

- Decreases amount of signature refreshes to improve performance and network usage. Signatures are now refreshed only when the document is signed and not modified. (#27128)

- Fixes an issue where annotations not marked for printing were visible when using `PrintMode.EXPORT_PDF`. (#25926)

## 2020.6.3 — 27 Nov 2020

No web-specific changes in this version.

## 2020.6.2 — 19 Nov 2020

### UI

- Starts fetching Wasm artifacts earlier. (#26580)

- Fixes an issue that was causing note icons buttons to not have hover or active styles. (#26768)

- Fixes an issue when scrolling through a large document using the arrow keys. (#26271)

- Fixes an issue where `isEditableAnnotation` callback was not used to decide whether the annotation should be editable when the document was read-only. (#25899)

- Fixes an issue where `isEditableComment` callback was not used to decide whether comment should be editable when the document was read-only. (#26555)

- Fixes an issue where annotation hit testing would fail after signing or applying document editor operations when first page was not the current page. (#26490)

- Fixes an issue where highlight annotations would be rendered opaque when AP stream rendering was enabled on Legacy Edge and IE11. (#26611)

- Fixes an issue where markup annotations in rotated pages would be rendered with a wrong, non rotated orientation. (#26281)

- Fixes an issue where previewed redactions overlay text wasn't visible on small heights. (#25304)

- Fixes an issue where the add bookmark button was hidden when annotation toolbar was open. (#26226)

- Fixes an issue where the ink signature dialog would restore focus to the wrong DOM element when closed. (#26579)

- Fixes conditions where opening a dropdown menu would cause the page to scroll down unexpectedly. (#26102)

- Fixes an issue where free-form highlights lost opacity after activating eraser when image annotation existed on the page. (#25308)

- Fixes an issue where invalid comment counts were displayed after changing selection between comment thread roots via `setSelectedAnnotation`. (#26856)

- Fixes an issue where leaving combobox dropdown via Escape key could lead to a crash. (#26875)

### Model

- Improves performance with path drawing by removing unnecessary path operations. (#25922)

- Improves text search performance for large documents on Server deployments. (#25318)

- Fixes a crash when a link annotation with an unsupported action was rendered. (#25730)

- Fixes an issue where border color wasn't properly read for widget annotations. (#25317)

- Fixes an issue where ellipse, rectangle and polygon annotations without `cloudyBorderIntensity` set would lose their original AP stream. (#26568)

- Fixes an issue where signature AP streams were not correctly rendered when instant was set to `false`. (#26634)

- Fixes an issue where text annotations with a callout property would throw an error instead of rendering a fallback appearance. (#26553)

- Fixes conditions where the `ViewState.change` wouldn't always fire. (#25881)

### Core

- Adds support for finding the correct form field type in non-conforming PDF files. (#26459)

- Fixes an issue where forms were not repaired before trying to set form values. (#26004)

- Improves rendering performance of documents with lots of image patterns. (#26186)

- Fixes an issue where partially redacted curved path objects may be misdrawn. (#26698)

## 2020.6.1 — 27 Oct 2020

### Core

- Fixes CVE-2020-15999 in upstream dependency Freetype. (#26610)

## 2020.6.0 — 20 Oct 2020

_See the [announcement post](/blog/pspdfkit-for-web-adds-annotation-notes/)._

### UI

- Adds per annotation AP stream rendering support through `NutrientViewer.Configuration#isAPStreamRendered()`. (#25297)

- Adds support for annotation notes. (#25626)

- Adds support for using custom fonts on Standalone deployments. (#25356)

- Adds a new configuration option `restrictAnnotationToPageBounds` that restricts the movement of annotations to the page boundary. (#25240)

- Adds missing attachments error reporting when using custom stamp annotation templates. (#25285)

- Adds title to container iframe to improve accessibility. (#26034)

- Improves how comment threads are creating when using the keyboard. (#25751)

- Improves how currently selected page is announced to screen readers on thumbnails sidebar. (#26035)

- Improves how focus is moved from open dropdown to next item. (#25788)

- Improves how slider dropdowns are accessed using the keyboard. (#25781)

- Improves how text and note annotations are created using the keyboard. (#25751)

- Improves how toolbar dropdowns are used with the keyboard and announced by assistive technology. (#4752)

- Improves selection of dropdown options using the keyboard while an annotation is selected. (#4793)

- Improve keyboard navigation and screen readers support on annotation toolbar responsive groups. (#26029)

- Improve navigation with left and right keys for multi-column dropdowns. (#25791)

- Prevent an invisible image picker from being announced by assistive technology. (#26227)

- Updated toolbar icons to increase their contrast and fix the fill of some icons. (#25167)

- Fixes a crash when pressing Escape with focus on the layout config button. (#25789)

- Fixes an issue that prevented the user from copying text from an input field with the UI in Firefox. (#25790)

- Fixes an issue where AP streams of button widget would disappear when focused. (#25145)

- Fixes an issue where deleting an annotation with the key shortcut would end up scrolling the view up. (#25286)

- Fixes an issue where dropdown of currently selected item class wasn't properly set when opened. (#26211)

- Fixes an issue where initially selected toolbar buttons would not appear highlighted. (#26163)

- Fixes an issue where text annotation's AP streams would be invalidated without prior modification of any visual property. (#25543)

- Fixes an issue where text selection on rotated pages would have the wrong direction. (#25345)

- Fixes an issue where the inline markup toolbar would appear in a wrong position on rotated pages. (#25345)

- Fixes flash when opening dropdowns on IE11 and legacy versions of Edge. (#26151)

- Fixes toolbar item activation while an annotation is selected. (#4793)

- Fixes an issue on macOS Safari that prevented use of left and right keys to move annotations. (#26422)

- Fixes an issue where it was possible to delete a comment thread by pressing Backspace. (#25831)

- Fixes an issue where pressing Backspace in Firefox and IE11 caused the browser to navigate back in the history. (#26461)

### Model

- Adds `Configuration#customFonts` to allow loading an array of custom fonts to use on Standalone deployments. (#25356)

- Adds the rotation property to `NutrientViewer.PageInfo`. (#26152)

- Adds `flattenAnnotation` document editing operation. (#25287)

- Improves the error message shown when requiring the Form Designer component. (#25815)

- Fixes an issue where the typings for the `instance.search` API was wrong. (#26038)

- Fixes an issue where widgets AP streams were not rendered if the form field value was initially set in Standalone mode. (#26295)

- Fixes an issue where some annotations did not have correct TypeScript declarations. (#25910)

### Core

- Improves WebAssembly download and initialization performance by reducing the binary size. (#25893)

- Improves loading performance for documents that have broken internal links (named destinations). (#24398, #26099)

- Enhances the flattening of note annotations by rendering the root comment rather than the note icon. (#22673)

- Fixes OOM errors when loading large documents. (#25654)

- Fixes a crash that could happen when creating form fields. (#25806)

- Fixes an issue where OCR could not be performed on a certain image due to an incorrect render scale. (#26118)

- Fixes an issue where appearance streams weren't re-generated when using the processor even though "NeedAppearances" was set in the PDF. (#26123)

- Fixes an issue where documents with high object numbers were identified as corrupt. (#26062)

- Fixes an issue where form elements were included in the page rendering which shouldn't have been. (#25799)

- Fixes an issue where warning messages were displayed in other readers when flattening a signature form field. (#25923)

- Fixes duplication of newly created pages in the Document Editor. (#26074)

- Fixes form field JavaScript actions in the generated documents when merging two or more documents together. (#25603)

- Fixes the PDF JavaScript function `getNthFieldName` to return the FQN of the form field. (#26144)

- Fixes text clipping for form fields exceeding their maxLen due to programmatic changes. (#26340)

- Fixes an issue in the Document Editor when adding an item to an imported page. (#25837)

### Examples

- Fixes a runtime JavaScript error in the "Customize annotations" example. (#25855)

- Fixes an issue where the Form Designer example would fail when AP stream rendering was enabled. (#25546)

- Fixes the "What's new" top link in the public Catalog by pointing it to the changelog. (#25655)

## 2020.5.1 — 10 Sep 2020

No web-specific changes in this version.

## 2020.5.0 — 10 Sep 2020

_See the [announcement post](/blog/pspdfkit-for-web-introduces-new-crud-api/)._

### UI

- Adds support for moving pages by dragging them or via a dialog in the Document Editor. (#25178)

- Improves interaction with toolbar responsive groups using the keyboard. (#2513)

- Improves keyboard navigation and screen reader support for annotation toolbars on desktop. (#4775)

- Improves styling of notes popovers to ease opting out from gradient rendering. (#25316)

- Improves how toolbar dropdowns are used with the keyboard and announced by assistive technology. (#4752)

- Updates image request handling on Server deployments to use XHR requests also in Firefox. (#25263)

- Fixes a race condition where network requests made by an unloaded instance weren't cancelled. (#25292)

- Fixes an issue where `annotations.create` and `annotations.update` event were not getting called at the right time for ink, shape and note annotations. (#4655)

- Fixes an issue where clients presence wasn't updated after unloading an instance. (#25141)

- Fixes an issue where the font was not correctly auto-resized in multiline widgets in absence of newline character. (#25098)

- Fixes an issue where the preset wasn't selected when the Signature Modal was opened by clicking on the Signature Widget Annotation. (#25599)

- Fixes an issue with the TypeScript declaration for `Configuration#toolbarItems`. (#25164)

### Model

- API: Adds extended API for comments. (#25470)

  - API: Adds `Instance#getComments()` to retrieve all comments in the document.

  - API: Comments can now be created/updated/deleted/saved via the new unified API.
  - API: Adds events related to comments saving and changes.

- API: Adds unified API for creating, updating, deleting and saving objects. (#4837)

  - API: Adds new methods to `Instance` to allow performing operations on a batch of changes: `create`, `update`, `delete`, `hasUnsavedChanges` and `ensureChangesSaved`. Supports annotations, bookmarks, form fields, form field values and comments.
  - API: Adds `NutrientViewer.generateInstantId` for generating unique ID for changes.
  - API: Deprecates `Instance` methods for performing modifications and saving changes: `create*`, `update*`, `delete*`, `save*`, `ensure*Saved`, `hasUnsaved*`. Use the new unified API instead.

- API: `Instance#save` and `Instance#ensureChangesSaved` now report errors when save fails. (#25505)

- Adds support to add line cap and line width presets. (#25118)

- Adds support to set default color presets for highlights, note and text markup. (#25118)

- Improves error message when document permissions don't allow form editing. (#25525)

- Fixes an issue that prevented setting interaction mode as part of initialViewState. (#25506)

- Fixes an issue where instant comments weren't being auto-saved in intelligent mode. (#25331)

- Fixes an issue where the printed PDF didn't include annotations if it was done just after loading a PDF. (#25579)

- Fixes error when opening documents with forms more than once in Edge Legacy. (#25135, #25371)

- Fixes an issue where Bézier paths were drawn incorrectly when a miter limit was set. (#25758)

### Core

- Adds support for PEM format PKCS#1 private keys for use with digital signatures. (#24919)

- Improves Processor behavior when license doesn't include the forms component. (#24604)

- Improves font rendering in forms with Chinese, Japanese, Korean and Thai characters. (#24337)

- Improves the log messages when a license bundle ID check fails. (#25572)

- OCR now uses NEON and AVX intrinsics for better performance. (#24870)

- Fixes a crash that could happen as a result of a race condition when form fields were repaired and the page was rendered at the same time. (#24885)

- Fixes a problem where signing a document with existing digital signatures may invalidate them. (#24780)

- Fixes an issue where appearance streams of form field widgets weren't preserved correctly. (#25550)

- Fixes an issue where text form fields weren't displayed correctly after flattening due to their appearance stream being wrong in the original document. (#24918)

- Fixes duplicate string occurrences when copy and pasting from documents with duplicate content. (#25108)

- Fixes issues where pages were not moved correctly when using the document editor API. (#24939)

- Fixes the saving of small shapes with large line widths. Shapes with these characteristics in documents saved by PSPDFKit will now be visible on any reader. (#25531)

- Fixes an issue where the digital signature advanced properties contained the signature creator twice. (#25611)

### Examples

- Fixes the 'What's new' top link in the public Catalog by pointing it to the changelog. (#25655)

## 2020.4.2 — 04 Aug 2020

### Model

- Fixes an issue where JWT with a payload containing unicode characters got rejected. (#4810)

- Fixes an issue where documents would not open in Standalone mode in Edge unless `disableWebassemblyStreaming` was set to `true`. (#4834)

### Core

- Fixes an issue where text with word or character spacing was shifted after redaction has been applied. (#C24476)

- Fixes an issue where objects rendered with the Overlay blend mode didn't always render correctly. (#C24298)

## 2020.4.1 — 22 Jul 2020

### Model

- API: Adds support for regex and pattern search in the `Instance#search` API. (#4729)

- API: Adds support to search in annotations in the `Instance#search` API. (#4729)

- API: Adds `isAnnotation` and `annotationRect` in `PSPDFKit#SearchResult`. (#4729)

- API: Adds optional `baseUrl` parameter to `NutrientViewer.I18n.preloadLocalizationData` and `NutrientViewer.preloadWorker`. (#4751)

- Adds public CSS classes for ink signature dialog. (#4770)

- Fixes an issue where values of form fields returned via `Instance#getFormFields()` was not set. (#3909)

- Fixes an issue where updating a form field erased its current value. (#4707)

- Fixes an issue where `placeholderSize` parameter used when signing the document was ignored in standalone. (#4780)

- Fixes an issue where some parts of the API had missing or incorrect type definitions. (#4708, #4689)

### UI

- Improves semantic description of the markup annotation toolbar. (#4714)

- Improves support of screen readers on browse mode. (#4717)

- Improves how toolbar responsive groups are announced to screen readers. (#4715)

- Improves interaction with comment threads through assistive technology. (#4716)

- Improves accessibility of color pickers. (#4779)

- Fixes an issue where an annotation would get stuck to the cursor and get dragged after a right click on it. (#4773)

- Fixes an issue where the Markup Highlighter shifted when the selected text had leading or trailing space. (#4656)

- Fixes an issue where clicking a comment thread could trigger navigating to the next page. (#4719)

- Fixes an issue where new image annotations would not update their opacity when modified with the UI. (#4814)

### Examples

- Fixes an issue where an error would be thrown when loading a custom document. (#4748)

- Fixes an issue where downloading a PDF from the Catalog would crash on mobile Safari. (#3810)

### Core

- Fixes an issue where umlauts were displayed wrong in certain documents because the wrong encoding was used when shaping the text. (#C24465)

- Fixes a very rare crash on certain documents when multiple pages were rendered at the same time. (#C24598, #C24626)

- Fixes a problem where some certificates with CRL distribution point extensions may not be validated correctly. (#C24660)

- Fixes an issue where our text parser returned descending characters from the line above the intended search area. (#C24709)

## 2020.4.0 — 14 Jul 2020

No web-specific changes in this version.

## 2020.3 — 30 Jun 2020

_See the [announcement post](/blog/pspdfkit-adds-redaction-and-improved-digital-signatures-to-web/)._

### UI

- Adds the ability to redact documents by drawing redaction annotations over text or an arbitrary area. (#4536)

- Adds new toolbar item types `redact-text-highlighter` and `redact-rectangle` to create redaction annotations. These toolbar buttons are disabled by default. (#4585)

- Adds detailed error messages in UI when PSPDFKit fails loading. (#4310)

- Adds missing accessibility descriptions for certain modals. (#4475)

- Adds support for rendering AP stream in signed signature widgets. (#4503)

- Adds missing translation for Document Editor toolbar button. (#4577)

- Removes transparent color from foreground color pickers because it resulted in a wrong annotation rendering. (#3785)

- Fixes an issue where dropdowns won't close when clicked somewhere else in certain browsers. (#4424)

- Fixes an issue where modifications performed after a failed digitally signing attempt weren't persisted. (#4433)

- Fixes an issue where screen readers would read each page entirely when they were focused. (#4267)

- Fixes an issue where text could not be entered into form fields under certain conditions. (#4232)

- Fixes an issue where dropdown items would still be highlighted even when the mouse was not hovering over them. (#4497)

- Fixes an issue where annotations sidebar count included comments. (#4528)

- Fixes an issue where the same `annotations.press` event was emitted twice. (#4512)

- Fixes an issue where annotations would change their rendering order when the view is rotated on macOS Safari in Standalone mode. (#4158)

- Fixes an issue where annotations would lose their blend when the view is rotated on some browsers in Standalone mode. (#4298)

- Fixes an issue where note annotation's text would be hidden in rotated view on Windows Chrome in Standalone mode. (#4329)

- Fixes an issue where text annotation's edited text would be hidden in rotated view on Windows Chrome in Standalone mode. (#4330)

- Fixes an issue where highlight annotations would lose their opacity in rotated view on some browsers in Standalone mode. (#4496)

- Fixes an issue where it wasn't possible to click on the links when other annotations were in the foreground. (#3437)

- Fixes an issue where the toolbar icons overlapped in certain screen sizes. (#4663)

- Fixes an issue where dropdowns won't close when clicked somewhere else in certain browsers. (#4234)

- Fixes an issue where the submit button of first comment of the thread had the 'Reply' label. It has been changed to 'Comment'. (#4710)

### Model

- API: Adds `Instance#applyRedactions` to irreversibly redact the current document. (#4614)

- API: Adds `Instance#createRedactionsBySearch` to allow specifying a search criteria and create redaction annotations by the results. (#4627)

- API: Adds `NutrientViewer.ViewState#previewRedactionMode` to toggle between the marked and redacted appearances of redaction annotations. (#4609)

- API: Adds `NutrientViewer.SearchType` and `NutrientViewer.SearchPattern` data types. (#4627)

- API: Adds `NutrientViewer.Annotations.RedactionAnnotation` data type. (#4539)

- API: Adds `REDACT_TEXT_HIGHLIGHTER` and `REDACT_SHAPE_RECTANGLE` interaction modes. (#4540)

- API: Adds support for flattening a document before adding a digital signature. (#4194)

- API: Fixes an issue where certain events would not be fired after applying document operations. (#4519)

- API: Adds `Instance#hasUnsavedChanges()` to check if there were changes to any of the supported model types - annotations, comments, bookmarks, form fields and form values. (#4534)

- API: Adds event `document.saveStateChange` that is emitted when save state of the document changes, i.e. when result of `Instance#hasUnsavedChanges()` changes. (#4562)

- Adds public CSS classes for stamp dialog buttons. (#4223)

- Adds support for setting and rendering widget annotation's `font` property. (#4288)

- Fixes an issue where `Instance#hasUnsaved*()` returned `false` when there were changes not yet saved in Server mode. (#4557)

- Fixes an issue where `ensureAnnotationSaved()`, `ensureBookmarkSaved()` and `ensureFormFieldSaved()` from `Instance` never resolved under certain conditions. (#4561)

- Fixes an issue where deleting a form field or a widget annotation would lead to an inconsistent state and subsequent errors. (#4572)

- Fixes an issue with the TypeScript declaration on strict mode. (#4671)

### Core

- Improves style sheet parsing to recognize font names better. (#C23968)

- Fixes an issue where text search may not work correctly for certain Asian languages. (#C23125)

- Fixes an issue where non-latin text wouldn't render correctly. (#C23287)

- Fixes an issue where wrong characters were displayed in multi-line form fields. (#C23317)

- Fixes a problem where searching some documents may not return every text match. (#C23638)

- Fixes potential document corruption when incremental saving encrypted documents. (#C23689)

- Fixes an issue where Arabic text was not displayed correctly in exported PDFs. (#C23790)

- Fixes an endless loop while trying to repair form field. (#C23901, #C24597)

- Fixes an issue where the read_form_json_objects command may not return all form fields in the document. (#C24014)

- Fixes a problem where the asset name of a screen annotation may not be decoded correctly in some cases. (#C24269)

- Fixes a problem where the font name of a free text annotation may not be decoded correctly in some cases. (#C24269)

- Fixes a dangling pointer upon destruction of NutrientViewer. (#C24387)

- Fixes a rare case where the framework may exit unexpectedly when working with a PDF document. (#C24599)

### Examples

- Adds an example showing how to integrate PSPDFKit for Web with an Angular project. (#4608)

- Updates the Vue example with required API changes, and extends it with an Annotation API example. (#4513)

- Updates the Typescript example with required API changes, and extends it with an Annotation API example. (#4515)

- Fixes an issue in the Webpack example where loading a document would fail. (#4590)

### Documentation

- Adds documentation for `Instance#getTextSelection()`. (#4701)

## 2020.2.6 — 9 Jun 2020

### Model

- Improves quality of fallback font rendering. (#C24136)

- Fixes an issue where text was rendered incorrectly when the 'comb' option was used. (#C24395)

## 2020.2.5 — 28 May 2020

### UI

- Fixes an issue where manually drawing ink annotations would fail in IE11. (#4622)

- Fixes an issue where selecting text on Chrome 83 would include a dark text overlap. (#4631)

### Examples

- Fixes issues when using Form Designer catalog example on IE11 (#4419)

- Renames the Obscure Annotations catalog example to Hide/Reveal Area. (#4605)

- Fixes an issue in the catalog where clicking on the active example would remove the document ID from the collaborate dialog. (#4629)

## 2020.2.4 — 20 May 2020

### UI

- Fixes an issue where adding an image annotation from a PDF document with the UI would fail in IE11 and Edge. (#4564)

### Model

- Fixes an issue with the TypeScript declarations. (#4570)

## 2020.2.3 — 12 May 2020

### UI

- Adds a `data-annotation-id` attribute to the annotations sidebar individual items. (#4499)

- Improves accessibility and UX by removing hard line breaks in rendered text. (#4160)

- Fixes an issue where the cursor and drawing were not properly aligned if the sidebar was open on load. (#4410)

- Fixes an issue where toolbar buttons with dropdown arrows would overlap other buttons in certain viewport widths and toolbar configurations. (#4406)

- Fixes an issue for Server-backed deployments where printing a document would not respect relevant annotation flags. (#4443)

- Fixes an issue where the height of the collapsed comment threads were wrong. (#4432)

- Fixes an issue where stamp annotations with opacity smaller than `1` would lose their original AP stream. (#4493)

- Fixes an issue where line breaks in text annotations created in other viewers would not be rendered. (#4470)

- Fixes an issue where `annotations.press` was called twice when the user clicked on the Signature widget. (#4509)

- Fixes an issue where the "annotate" icon was not visible on old versions of Edge. (#4315)

- Fixes an issue where note annotations wouldn't appear if the icon was not found. (#4492)

### Model

- API: Adds `"applyInstantJson"` and `"applyXfdf"` document operations. (#4426)

### Developer Experience (DX)

- Added TypeScript declarations for the public API (#4257)

## 2020.2.2 — 28 Apr 2020

### UI

- Fixes an issue where the comment threads won't expand in `readOnly` mode. (#4422)

### Model

- Fixes an issue where changes made during offline state were lost after coming back online. (#4383)

- Fixes an issue with an internal API using the unsupported `Promise.prototype.finally` which caused legacy browsers to crash. (#4520)

## 2020.2.1 — 21 Apr 2020

### UI

- Fixes an issue where form field values added after deleting an annotation were not exported. (#4466)

- Fixes an issue in IE11 where selecting an annotation tool while a comment was focused would crash the app. (#4420)

- Fixes an issue where some translated strings looked wrong in Korean. (#4476)

- Fixes an issue in Standalone where documents were rendered at low resolution and blurry when opened in a mobile device. (#4184)

## 2020.2.0 — 07 Apr 2020

### UI

- Adds confirmation dialog when deleting comments. (#4269)

- Fixes an issue where root markup annotations were visible when `instant` was set to `false` in configuration. (#4238)

- Fixes an issue where multiline text widgets with auto-size font would have its font size too decreased. (#4271)

- Fixes an issue where confirmation dialogs were sometimes ignoring the "Enter" and "Space" keys. (#4332)

- Fixes an issue where spreads would render at incorrect widths when pages are inconsistently sized. (#4279)

- Fixes an issue where the event `viewState.change` was being emitted even when there was no change in viewState. (#4311)

- Fixes an issue that would prevent Link annotations with URIs without protocol to open as expected. (#4363)

- Fixes an issue where the opacity of widget annotations was not being respected. (#4261)

- Fixes an issue where `renderPageAsArrayBuffer` and `renderPageAsImageURL` didn't include annotations. (#4377)

- Fixes `PrintMode.DOM` out of memory issue in Standalone by capping the max document size when printing. (#4192)

- Fixes some rare stability issues when filling a form document with JavaScript scripts. (#C23443)

### Model

- API: Adds `Configuration#document` and deprecates `Configuration#pdf` in Standalone. (#4192)

- API: Adds `"applyInstantJson"` and `"applyXfdf"` document operations. (#4426)

- API: Removes deprecated `NutrientViewer.I18n#localeData`, `NutrientViewer.RectangleAnnotation#cloudyBorderInsetRect`, and `NutrientViewer.EllipseAnnotation#cloudyBorderInsetRect` properties. (#4395)

- Adds support for loading Image Documents. (#4192)

- Adds support for loading Word Documents (Server Only). (#4192)

- Improves performance of documents with PDF JavaScript formatting scripts. (#4294)

- Improves memory usage when digitally signing documents. (#C23299)

- Fixes an issue where exporting instantJSON from a document with forms would fail after updating a form field. (#4339)

- Fixes an issue that caused a crash when rendering certain pages from multiple threads. (#C23209, #C23339)

- Fixes an issue where the mailDoc and similar JavaScript functions may not parse its arguments correctly. (#C23257)

- Fixes an issue flattening form fields correctly when the artbox of the page contains an offset. (#C23385)

- Fixes an issue where options for a combobox weren't serialized correctly. (#C23412)

- Fixes an issue where spacing between extracted words was far too large. (#C23439)

- Fixes a potential data loss issues upon saving. (#C23485, #C23474)

- Fixes an issue where, after exporting a document, values of text form fields are only visible when selected (#C23652).

### Examples

- Adds a link to Codesandbox to all the examples to facilitate playing with the example code. (#4243)

- Adds example for Image Documents. (#4192)

## 2020.1.3 — 10 Mar 2020

### UI

- Improves performance when drawing ink annotations. (#3943)

- Fixes an issue where the network requests for tiles were not cancelled even when that tile was out of viewport. (#4235)

- Fixes missing `PSPDFKit-Comment-Marker-Annotation-Selected` class was missing when creating a new comment thread. (#4264)

### Model

- API: Adds new `annotations.willChange` event to track when a user starts and ends interacting with an annotation tool or existing annotation. (#3751)

- Fixes an issue flattening form fields correctly when the artbox of the page contains an offset. (#C23385)

- Fixes an issue where spacing between words was far too large. (#C23439)

## 2020.1.2 – 21 Feb 2020

No web-specific changes in this version.

## 2020.1.1 – 13 Feb 2020

### UI

- Improves performance when drawing ink annotations. (#3943)

- Fixes an issue where the viewport didn't center horizontally if the user deleted all the comments/root annotations. (#4181)

- Fixes an issue where the click on markup comment icon didn't work if a thread was already selected. (#4190)

- Fixes an issue with note annotations creation where the annotation marker would appear on every page upon dropping. (#4189)

### Model

- API: Adds new `NutrientViewer.ScrollMode.DISABLED` option to disable changing pages via the UI. (#4172)

- Fixes an issue with ahead of time compilation tools breaking when accessing the deprecated `NutrientViewer.I18n.localeData` API. (#4201)

- Fixes an issue where text on form fields is occasionally rendered with incorrect rotation on rotated pages. (#C22854)

- Fixes an issue where some PDF JavaScript calculations may not work correctly. (#C23043)

## 2020.1 – 31 Jan 2020

_See the [announcement post](/blog/pspdfkit-web-2020-1/)._

### UI

- Adds the ability to add comments to a PDF document through a text highlight or the newly introduced comment marker annotation. (#3615)

- Adds support for digitally sign documents and obtain the validation status of digital signatures present on it. (#3614)

- Adds support for fitting text annotations to the text by double clicking the right, bottom right, or bottom resize anchors. (#3781)

- Adds a small delay before showing a loading indicator. (#3574)

- Adds translations for "Marquee Zoom". (#3669)

- Adds support for `en-GB` locale. (#4080)

- Changes the annotation toolbar icon to better separate it from the document editor icon. (#3804)

- Changes the location of a new note annotation to be at the center of the click. (#3776)

- Changes the note annotation icon in the main toolbar. (#4163)

- Improves UI consistency and readability by increasing the `font-size` throughout the entire app. (#3438)

- Fixes an issue where CSS fallbacks for browsers not supporting CSS variables would fail to be applied. (#3734)

- Fixes an issue where rectangle and ellipse annotations' cloudy border would be cropped when its `strokeWidth` was increased using the UI. (#3906, #C22349)

- Fixes an issue where the sidebar was not closing clicking on an element in fullscreen mode in big screens. (#3861)

- Fixes an issue where forms were being rendered even when `disableForms` was set to `true`. (#3987)

- Fixes an issue where the `subtitle` property would be ignored in "Custom" stamp annotation templates. (#3983)

- Fixes an edge case where a memory leak was produced when a new instance is immediately loaded after unloading a previously one that just started loading. (#4047)

- Fixes an issue where resizing a text widget annotation with the UI would result in poor UI responsiveness. (#4090)

- Fixes an issue in IE11 where nodes appended using annotation's `NutrientViewer.Configuration#customRenderers` disappeared. (#3916)

- Fixes an issue where the UI could initialize when the stylesheets were not yet loaded. (#4009)

- Fixes an issue where small free text annotations would not be visible. (#3925, #C22514)

- Fixes an issue where text annotations with callout with a `null` cap property would not be recognized. (#4156)

- Fixes annotation render order. (#3039, #3678)

### Model

- API: Adds `Configuration#minDefaultZoomLevel` and `Configuration#maxDefaultZoomLevel` to allow changing the default limits on minimum and maximum zoom levels. (#3696)

- API: Adds new `NutrientViewer.Geometry.Inset` data type. (#3668)

- API: Adds `Configuration#trustedCAsCallback` to specify which certificates to validate digital signatures against. (#3614)

- API: Adds `Instance#signDocument` to digitally sign a document. (#3614)

- API: Adds `Instance#getSignaturesInfo` to retrieve the information of the digital signatures present on the document. (#3614)

- API: Adds `NutrientViewer.ViewState#showSignatureValidationStatus` to determine if and when the digital signatures validation status bar should be displayed. (#3614)

- API: Adds `NutrientViewer.SignaturesInfo` and `NutrientViewer.SignatureInfo` data types. (#3614)

- API: Adds `NutrientViewer.ShowSignatureValidationStatusMode`, `NutrientViewer.DocumentValidationStatus`and related digital signatures enums. (#3614)

- API: Adds public CSS classes for the digital signatures validation status bar. (#3614)

- API: Adds `CommentAvatar` support to `Configuration#customRenderers` (#3615)

- API: Adds `Configuration#isEditableComment` and `Instance#setIsEditableComment` to selectively allow/disable editing certain comments. (#3615)

- API: Adds `NutrientViewer.ViewState#showComments` to toggle rendering comments in the UI. (#3615)

- API: Adds `NutrientViewer.Comment` and `NutrientViewer.Annotations.CommentMarkerAnnotation` data types. (#3615)

- API: Adds `Instance#hasUnsavedComments` to determine if there are unsaved comments. (#4162)

- API: Adds `Instance#saveComments` to manually save comments in case you have manually set `autoSaveMode` to something other than `NutrientViewer.AutoSaveMode.IMMEDIATE`. (#4162)

- API: Adds public CSS classes for comments-related UI. (#3615)

- API: Replaces rectangle and ellipse annotation's `cloudyBorderInsetRect` property with `cloudyBorderInset`, which uses the new `NutrientViewer.Geometry.Inset` type. (#3668)

- API: Fixes an issue in Standalone mode where `NutrientViewer.Instance#getAnnotations()` would resolve before widget annotations were available. (#3718)

- API: Fixes an issue in Standalone mode where form fields included in `NutrientViewer.Configuration#instantJSON` were not being created. (#3713)

- API: Fixes an issue where calling `preloadWorker()` on Electron would not match the Electron app ID to the license. (#4019)

- Adds `Bookmark.toSerializableObject` and `Bookmark.fromSerializableObject` to serialize/deserialize bookmark objects. (#3655)

- Adds support for the JavaScript function `doc.gotoNamedDest`. (#C18957)

- Adds support for saving encrypted documents incrementally. (#C22722)

- Improves handling of enqueued modifications to annotations, bookmarks and form fields. (#3626)

- Improves license check error message to provide more information. (#C12904)

- Improves automatic font detection - prefer fonts already in the document when possible. (#C22530)

- Improves complex script text rendering. (#C22573)

- Improves annotation notes exporting for better compatibility with macOS 10.15 Preview's sidebar. (#C22791)

- Improves logging to the console when opening a document with form fields without a forms license. (#C23119)

- Updates `react-intl` version, which improves locale data handling by making use of the standard `Intl` API. (#3671)

- Fixes an issue where global touch event listeners would not be removed when the instance was unloaded. (#3963)

- Fixes an issue in Standalone mode where modifications to widget annotations would not be rendered, printed or exported if its form field had not been modified. (#4077)

- Fixes an issue where the value returned by `viewState.viewportPadding` had the horizontal and vertical values switched. (#3934)

- Fixes an issue in Standalone mode where sometimes exporting the PDF would error if annotations had been deleted, but not updated nor created. (#4109)

- Fixes an issue in Server mode where image and stamp annotations would be removed after applying document operations. (#4098)

- Fixes an issue where a form field element appearance stream was regenerated accidentally when not needed. (#C21618)

- Fixes an issue that caused a blank page after flattening annotations on certain documents. (#C22279)

- Fixes an issue with form calculations when one of the form fields contains multiple form elements. (#C22675)

- Fixes an issue with encrypted documents not being digitally signed correctly. (#C22722)

- Fixes an issue where creating a submit form action from JSON without action flags would not work. (#C22784)

- Fixes an issue with the file size optimization algorithm not running on save. (#C22809)

- Fixes characters escaping when exporting to XFDF. (#C22844)

- Fixes PDF Javascript when scripts are encoded in UTF16. (#C23044)

### Examples

- Adds a new catalog example to showcase adding comments via the PSPDFKit UI. (#3615)

- Adds a new catalog example for the new Digital Signatures feature. (#3343)

- Adds an example to show PSPDFKit for Web's integration with Svelte. (#3732)

- Adds an example to show PSPDFKit for Web's integration with Next.js. (#3727)

- Adds new catalog example that demonstrates how to build an annotations inspector. (#3607)

- Adds an example to show PSPDFKit for Web's integration with GatsbyJS. (#3803)

- Updates Form Designer catalog example to demonstrate a potential UI that allows two signers to fill in a contract.

- Updates electron dependency to v7.x in Electron example. (#3992)

- Fixes an issue in the catalog app that prevented switching between Server and Standalone modes in IE11. (#3758)

### Documentation

- API docs now have a "See also" section with related properties and methods from other namespaces. (#4062)

- Removed wrongly documented `event.formField` from `NutrientViewer.AnnotationsFocusEvent` and `NutrientViewer.AnnotationsBlurEvent`. (#3793)

## 2019.5.4 – 5 Dec 2019

### UI

- Fixes an issue where unloading an instance while it hadn't finished loading lead to a memory leak. (#3866)

- Fixes an issue where the text of the right page on double page layout got blurry under certain conditions. (#3706)

- Fixes an issue where clicking on an annotation or the edges of a document in `PER_SPREAD` scroll mode went to the next or previous page. (#3907)

- Fixes an issue where typed letters on text form fields would appear very slowly on some browsers. (#3665)

- Fixes an issue where the UI would initialize if the stylesheets are not loaded yet. (#3739)

- Fixes an issue on Firefox and Safari where the pan mode tool would be stuck after clicking on an internal document link. (#3814)

- Fixes an issue where the Document Outline sidebar would not load when enabled in the initial view state. (#3470)

### Model

- Fixes an issue where `annotations.focus` and `annotations.blur` events would not be dispatched at the intended times. (#3513, #3579)

- Fixes an issue where `annotations.focus` and `annotations.blur` event handler callbacks would receive the annotation object as `nativeEvent` event property instead of the original event object, only for note annotations. (#3653)

- Fixes an issue where the interface would break when deleting multiple annotations programmatically. (#3869)

### Core

- Improves memory usage while searching document with a lot of annotations. (#C22367)

- Updates Duktape to version 2.5.0. (#C22476)

- Fixes ISO8601 timezone support in instant json. (#C21148)

- Fixes an issue where certain high resolution images weren't rendered. (#C22322)

- Fixes a crash related to multi-threading and font loading. (#C22387)

## 2019.5.3 – 5 Nov 2019

### UI

- Fixes drawing with pen devices. (#3629)

- Fixes an issue where `additionalActions` on `WidgetAnnotations` were not working. (#3761)

### Model

- API: Fixes an issue in Standalone mode where `NutrientViewer.Instance#exportXFDF()` would throw an error. (#3788)

- Improves the rendering of annotations with dashed borders. (#C10216)

- Increases image size limits. (#C22029)

- Fixes an issue where text entered in certain form fields was rendered garbled. (#C21700)

- Fixes an issue where some filled form fields may not show their content correctly. (#C22100)

- Fixes an issue where form repairs were done too eagerly. (#C20786)

- Fixes an issue where some properties of a widget annotation were not persisted when the document was saved. (#C21546)

- Fixes an issue where deleting or moving pages from a PDF did not update the outline. (#C21620, #C22048)

- Fixes an issue where annotation additional actions may not be deserialized correctly. (#C21983)

### Core

- Updates Duktape to version 2.4.0. (#C20954)

- Fixes an issue if a TrueType font collection has more than 32 fonts. (#C22148)

## 2019.5.2 – 16 Oct 2019

### UI

- Adds pinch to zoom support on Edge, Chrome, and Firefox when using touch screens. (#759)

- Adds double tap to zoom support on Edge, Chrome, and Firefox when using touch screens. (#1384)

- Adds support for navigating pages by tapping the left and right parts of the background in PER_SPREAD scroll mode. (#3658)

- Adds support for rotation to widget annotations. (#3114)

- Improves tiling experience by avoiding temporary blurriness when zooming in and out. (#3654)

- Improves pinch zooming behavior by capping the maximum and minimum zoom levels for pinching. (#3656)

- Adds the ability to move annotations by using the arrow keys. (#3611)

- Fixes an issue where a custom DOM node used as annotation tooltip wouldn't be positioned correctly under certain cases. (#3657)

- Fixes an issue in Safari where the text annotation content would appear cropped once editing was done. (#3637)

- Fixes an issue in Chrome where a text annotation could be stuck in dragging mode under certain edge cases. (#3495)

- Fixes issues that broke dragging annotations or drawing lines when a second finger was used on touch devices. (#3664)

- Fixes crashes under certain cases when deleting pages from a document. (#3666)

- Fixes an issue where updating an annotation, form field or bookmark that was being updated would fail and hide the annotation, form field or bookmark in the UI until reload. (#3675)

- Fixes an issue in Standalone mode where the bookmarks sidebar would keep showing a spinner instead of loading the bookmarks. (#3710)

- Fixes an issue where hovering over a note annotation would render the tooltip of a different, currently selected annotation. (#3697)

- Fixes an issue where selecting text would not emit `textSelection.change` events when markup annotations were not editable. (#3729)

### Model

- Adds page filtering to the `importDocument` operation using `importedPageIndexes` in the DocumentEditor API. (#C21231, #C21387)

- Adds support for printing array structures from JavaScript code inside a PDF. (#C19063)

- Fixes an issue where widget annotations would not be created and exported correctly. (#3672)

- Fixes a rendering error where the font `ArialMT` wasn't selected correctly. (#C21744)

- Fixes a rare deadlock when rendering certain documents. (#C21856)

- Fixes a performance regression when rendering with an ICC based color space. (#C21776)

- Fixes a regression that caused certain link annotations to not work. (#C21709)

- Fixes a possible crash when loading annotations failed in certain Instant documents. (#C21617, #Z15606)

- Fixes a crash when using the processor on certain documents with very deep object hierarchies. (#C21674)

- Fixes widget annotation rotation property persistence when coming from instant JSON. (#C21552, #C21621)

- Fixes an issue where documents using certain kind of fonts may cause the app to be terminated unexpectedly. (#C21626)

- Fixes a rare situation where setting form field flags may cause a deadlock. (#C19942)

- Fixes some stability issues related to color space management. (#C21529)

- Fixes a problem where some PDF images may be missing in some documents. (#C21353)

- Fixes an issue with transparent `strokeColor` in Instant JSON. (#C21391)

- Fixes an issue when importing XFDF files in specific documents. (#C21271)

- Fixes an issue where loading a document would fail if it contained JPEG2000 images not specifying a color space. (#C21311)

- Fixes an issue where images with the lighten blend mode didn't get rendered correctly. (#C20642)

### Core

- Updates HarfBuzz to version 2.6.2. (#C21686)

## 2019.5.1 – 19 Sep 2019

### UI

- Adds new toolbar item type `marquee-zoom` to enable Marquee Zoom mode. This toolbar button is disabled by default. (#3608)

- Improves text field rendering and auto font size calculations. (#3581)

- Fixes an issue where typing was prevented in very small text widgets. (#3572)

- Adds the ability to move annotations by using the arrow keys. (#3611)

- Improve text field rendering and auto font size calculations. (#3581)

- Fixes an issue where moving rectangle and ellipse annotations was causing annotations in the generated PDF to be rendered incorrectly. (#3593)

- Fixes an issue where text widgets with the doNotScroll property and a right text align would not accept input on Chrome. (#3601)

- Fixes an issue where small stamp annotation templates would appear blurry in the stamp template picker dialog. (#3550)

- Fixes an issue where the Document Editor button would appear in read only mode. (#3604)

- Fixes an issue where drawing ink signatures on touch devices would be momentarily blocked when starting to draw. (#3618)

### Model

- API: Adds `Instance#jumpAndZoomToRect()` to bring a specific rectangle into the viewport and adjust the zoom level so it's always visible to the best way possible. (#1750)

- Adds `Configuration#toolbarPlacement` to make the toolbar position configurable. (#3609)

- Improves CRUD operations with annotations, form fields, form field values and bookmarks by ensuring changes are persisted when the corresponding API methods resolve. (#3577)

- Fixes an issue where the deletion callback for annotations, bookmarks, and form fields was fired before the change was internally processed so that the save methods had no effect. (#3582)

## 2019.5 – 9 Sep 2019

_See the [announcement post](/blog/pspdfkit-web-2019-5/)._

### UI

- Adds support for rendering form field's `required` flag as new `PSPDFKit-Annotation-Widget-Required` public CSS class and HTML `required` attribute for `TextFormField`, `ComboBoxFormField` and `ListBoxFormField`. (#3477)

- Adds support for rendering widget annotations' `borderWidth` and `borderStyle` properties. (#3496)

- Adds document editor translations for "Move before", "Move after" and "Document will be merged here". (#3489)

- Adds support for iOS 13. (#3510)

- Improves annotation insertion on rotated pages. (#2853)

- Improves support for iPadOS. (#3436)

- Improves performance on pages with many annotations. (#3465)

- Fixes an issue where selected annotations would not emit the `annotations.press` event. (#3431)

- Fixes an issue with dropdown menus being cut-off when there is not enough vertical space available. (#3442)

- Fixes an issue that prevented creating image annotations with the UI in REST mode. (#3499)

- Fixes an issue where some keyboard shortcuts would be triggered when used in an external scope. (#3508)

- Fixes an issue where thumbnail images would not update after applying operations with the thumbnails sidebar open. (#3488)

- Fixes an issue where an horizontal scrollbar would appear in the ink signature picker dialog. (#3551)

- Fixes an issue where the password prompt dialog text would use a low contrast color in dark mode. (#3471)

### Model

- API: Adds methods to add, update and remove form fields and widget annotations in the current document. Requires form designer license feature and Instant or standalone mode. (#3452)

- API: Adds `NutrientViewer.Instance#setCustomRenderers` to change the current custom renderer callbacks and update custom rendered content. (#3491)

- Adds support for JavaScript in PDF documents to Standalone and the `NutrientViewer.Options.PDF_JAVASCRIPT` configuration option to enable the feature (disabled by default). (#3084)

- Strengthens the validation of InstantJSON format in some corner cases. (#C20748)

- Improves transparency support for images and stamps. (#2612, #C20483)

- Improves performance when parsing many links. (#C20786)

- Improves memory usage on complex documents. (#C20970)

- Improves the stability of some PDF form operations. (#C21032)

- Improves font rendering and fixes several edge cases. (#C20930)

- Improves the validation of Instant JSON payloads so that case differences in properties are tolerated. (#C21145)

- Updates Botan to version 2.11.0. (#C20549)

- Fixes an issue that caused freeform rotated images and stamps to not display correctly. (#3445)

- Fixes an issue where transparent images in annotations had a white background. (#C20841)

- Fixes some stability issues when fonts are loaded from a document. (#C21042)

- Fixes a possible crash in certain documents due to a null dereference in `PDFC::Forms::FormCorePDFBackend::isLinkedInAcroForms`. (#C21121)

- Fixes an issue where standalone Web caused license pings when it shouldn't have. (#Z15302)

### Example

- Improves PWA example with drag and drop, more consistent UI, and a more obvious update flow. (#3430)

## 2019.4.1 – 2 Aug 2019

### Model

- Fixes an issue where the absence of the forms feature in the license would not be properly detected on load. (#3433)

## 2019.4 – 31 Jul 2019

_See the [announcement post](/blog/pspdfkit-web-2019-4/)._

### UI

- Adds the new Document Editor view to allow adding/removing pages, merging documents, and more. (#3062)

- Adds support for the `cy` locale. (#20471)

- Adds support for inline SVGs as text for ToolbarItem#icon and ToolItem#icon. (#3299)

- Adds `NutrientViewer.Configuration#theme` and `NutrientViewer.Theme` enums to configure the theme. (#3300)

- Changes icon theme. (#3123)

- Changes toolbar height from 48px to 44px. (#3123)

- Changes the thumbnail layout and styles. (#3286)

- Improves render quality when using Standalone. (#2951)

- Fixes an issue where the bookmarks and annotations sidebars wouldn't show page labels. (#3137)

- Fixes an issue that sometimes prevented text selection after a document is loaded, unloaded, and loaded again. (#3269)

- Fixes an issue where multiple highlight annotations would be created for a single selection. (#3182)

- Fixes an issue where scrolling prevented text form field changes from being propagated. (#3210)

- Fixes an issue where scrolling inside note annotations would cause the page to jump in PER_SPREAD scroll mode. (#3312)

- Fixes an issue where EXIF orientation of JPEG image annotations were not properly applied. (#3318)

- Fixes an issue where the text selection cursor was visible when the pan mode was enabled. (#3325)

- Fixes an issue where the viewport would scroll while moving an annotation in `NutrientViewer.InteractionMode.PAN` mode. (#3215)

- Fixes an issue where the text of note annotations would be cleared after zooming. (#3183)

- Fixes an issue where the text of note annotations would sometimes be cleared if the note icon was hovered. (#3365)

- Fixes an issue with the password prompt that caused the success animation to not be displayed. (#3355)

- Fixes an issue where hovering annotations would move the viewport if zoomed out and not scrollable anymore (#3368).

- Fixes an issue where a hovered note annotation would keep showing after navigating to a different page with the keyboard. (#3359)

- Fixes an issue where text annotations without `fontSize` set would not be rendered. (#3386)

- Fixes an issue where pressing a non-selectable toolbar item would clear the selected state of an annotation tool. (#3191)

- Fixes an issue where creating a new note annotation could cause it to be placed at an unexpected point. (#3059)

- Fixes an issue where extra new lines would be added to a text annotation in Firefox. (#3323)

### Model

- API: Adds `NutrientViewer.Instance#applyOperations()` and `NutrientViewer.Instance#exportPDFWithOperations()` methods to modify the current document or export it with modifications. Requires document editing license feature. (#3062)

- Adds a content hash to the WebAssembly and asm.js artifacts so that they can use a long-term caching strategy. (#3255)

- Adds support for `isBold` and `isItalic` properties in widget annotations. These properties are currently not supported for printing or exporting. (#2940)

- Adds support for `verticalAlign` property in text and button form fields. When printing and exporting, the property is only supported for multiline text widgets. (#2895)

- Adds support for setting the default eraser cursor width before load using `NutrientViewer.Options.DEFAULT_INK_ERASER_CURSOR_WIDTH`. (#3334)

- Adds support for vertical alignment in single-line form fields when exporting or printing PDF files. (#C19882)

- Adds support for serializing and deserializing border properties of link annotations. (#C20359)

- Adds support for preserving the InstantJSON id in the PDF. (#C20572)

- Changes naming scheme of chunked data. This allows for smarter preloading and caching in service worker. (#3071)

- Improves automatic repair of AcroForms on loading documents with a large number of annotations. (#C19947)

- Improves rendering of non ASCII text. (#C20189)

- Improves loading performance for documents with complex outlines. (#C20279)

- Updates libpng to version 1.6.37. (#C19851)

- Updates Expat to version 2.2.6. (#C19868)

- Updates libWebP to 1.0.2. (#C20040)

- Updates Expat to version 2.2.7. (#C20545)

- Updates openjpeg to version 2.3.1. (#C20647)

- Fixes asynchronous APIs to always reject instead of throwing synchronously. (#2306)

- Fixes an issue reading media boxes. (#C20592)

- Fixes an issue where some documents with dropdown fields may show an arrow when the document is flattened. (#C9539)

- Fixes very occasional text rendering problems. (#C20155)

- Fixes an assertion when importing annotations outside the page range using XFDF. (#C20424)

- Fixes an issue where form fields with calculation order may not be flattened correctly. (#C20434)

### Example

- Adds new catalog example for the Document Editor. (#3343)

- Adds new catalog example that demonstrates the new dark mode. (#3330)

- Fixes an issue where custom documents did not have the same toolbar items as example documents in the examples catalog. (#3347)

### Instant

- Adds support for notifying connected clients when the document changed. (#3062)

## 2019.3.1 – 19 Jun 2019

### UI

- API: Adds support for receiving `annotations.press` events from widget annotations. (#2845)

- API: Fixes an issue where `NutrientViewer.ViewState#readOnly` could not be set to `false` in read-only documents even when `NutrientViewer.Options.IGNORE_DOCUMENT_PERMISSIONS` was `true`. (#3245)

- Fixes an issue where multiline text widget annotations would not be editable because of excessive padding. (#3161)

- Fixes an issue where the tools for note annotations were rendered in an additional tooltip instead of inside the existing note tooltip. (#3214)

- Fixes an issue where clicking in an annotation tooltip would deselect the annotation. (#3236)

### Model

- Adds support for making individual widget annotations read only with `NutrientViewer.Configuration.isEditableAnnotation`. (#2845)

- Fixes a merging issue in Instant that caused enqueued changes to resolve incorrectly and generate a server error. (#3225)

## 2019.3 – 29 May 2019

_See the [announcement post](/blog/pspdfkit-web-2019-3/)._

### UI

- Adds support for streaming search results, resulting in faster initial results. (#3058)

- Adds a toolbar for modifying the `text-highlighter` preset properties while on `TEXT_HIGHLIGHTER` interaction mode. (#3041)

- Adds an eraser tool to remove ink annotations points with the pointer. (#3057)

- Adds support for the `fr-CA` locale. (#3176)

- API: Adds `NutrientViewer.AnnotationPresets.toSerializableObject` and `NutrientViewer.AnnotationPresets.fromSerializableObject` to convert annotation presets to and from serializable objects. (#3155)

- API: Adds `NutrientViewer.SearchState#minSearchQueryLength` to retrieve the minimum search query length. (#3197)

- API: Adds a minimum search query length check to `NutrientViewer.Instance#search` and `NutrientViewer.Instance#startUISearch`. (#3197)

- Improves ink annotation creation by splitting new, distant lines into new annotations. (#1462)

- Changes the minimum annotation size for ink and shape annotations from `128` to `16`. (#3070)

- Fixes an issue where new lines would be duplicated in Chrome when editing a text annotation. (#3101)

- Fixes an issue where the default viewer styles would override the widget annotation styles on focus. (#3151)

- Fixes an issue where the ink annotation toolbar would not use user-provided line width presets. (#3150)

- Fixes an issue with read only note annotations being deletable via keyboard. (#3149)

- Fixes an issue with note annotations not being selectable via keyboard when read only. (#3149)

- Fixes an issue where the pointer cursor would change when hovering some non-editable annotations. (#3157)

- Fixes an issue with popover being positioned in the middle of the page even when they fit in around their reference element. (#3160)

- Fixes an issue with annotations being immediately deselected after selection. (#3189)

### Model

- Adds support for passing page start and end indexes to `Instance#search()`. (#3058)

- Adds support for the `hidden` flag to all the supported annotation types. (#3172)

- Improved automatic repair of AcroForms to support more document errors. (#C19834)

- Fixes a potential crash when processing large documents under low-memory conditions. (#C19768)

- Fixes an issue where broken link annotations where sent to the backend. (#C19090)

### Example

- Fixes an issue where duplicated line annotations were clipped in the tooltips catalog example. (#3140)

## 2019.2.4 – 13 May 2019

### UI

- Fixes an issue where image and stamp annotations where rendered behind widget annotations. (#3124)

### Model

- Improves error handling when creating, updating, and deleting form fields. (#3111)

- Allow creating annotation with a user-defined `createdAt` or `updatedAt` field. (#3110)

- Updates the Botan library version to 2.10.0. (#C19767)

- Fixes printing and exporting PDF files containing form field values with CJK glyphs and missing font information when using PSPDFKit Server. (#3097, #2974)

- Fixes an issue where Standalone on IE11 was causing some tiles to not render correctly. (#3117, #3092)

- Fixes a potential crash when processing large documents under low-memory conditions. (#C19768)

- Fixes an issue where broken link annotations where sent to the backend. (#C19090)

## 2019.2.3 – 29 Apr 2019

### UI

- Adds support for custom page labels in the page indicator. (#3022)

### Model

- Adds support for creating annotations and form fields with a user-defined ID. (#3087)

- Improves error handling when creating, updating, and deleting annotations and bookmarks. (#3090)

### Example

- Adds a new Catalog example that adds two special annotations that can be used to obscure the document. (#3023, #3024)

- Adds a new Catalog example about keeping ink signatures across page refreshes. (#2834)

## 2019.2.2 – 25 Apr 2019

### UI

- Fixes an issue where changing the locale did not update the `<body lang>` property. (#3069)

- Fixes an issue where text annotations `fontColor` could be set to transparent (`null`). (#2865)

- Fixes an issue where the `strokeDashArray` property of an annotation preset would be incorrectly updated. (#3080)

- Fixes an issue where the thumbnails sidebar didn't have top and bottom spacing. (#1708)

### Model

- Improves server error handling. (#2807)

- Fixes an issue where XFDF was not being validated correctly. (#3074)

## 2019.2.1 – 19 Apr 2019

No web-specific changes in this version.

## 2019.2 – 18 Apr 2019

_See the [announcement post](/blog/pspdfkit-web-2019-2/)._

### UI

- API: Adds `Instance#currentAnnotationPreset` and `Instance#setCurrentAnnotationPreset()` to get and set the current active annotation preset. (#2919)

- API: Adds `Instance#setEditingAnnotation()` to select an annotation and enter edit mode. (#2902)

- API: Allow to disable the Ink Signature modal dialog by preventing the `annotations.onPress` event for `WidgetAnnotation`. (#2930)

- API: Renames `*.onPress` events to `*.press`. (#2984):

  - API: Renames `annotations.onPress` to `annotations.press`.
  - API: Renames `textLine.onPress` to `textLine.press`.
  - API: Renames `page.onPress` to `page.press`.

- Adds `NutrientViewer.Options.DISABLE_KEYBOARD_SHORTCUTS` to disable the viewer keyboard shortcuts. (#2909)

- Adds `NutrientViewer.Configuration#customRenderers` to allow adding rendering custom content along with annotations. (#2896)

- Adds keyboard navigation for annotations for better a11y. (#2963)

- Adds `figcaption` to images and stamp annotations that define a `description` property (screen readers only). (#2963)

- Adds `annotations.focus` and `annotations.blur` instance events. (#2982)

- Adds an optimization that reduces the number of points an ink annotation creates while drawing. (#2849)

- Improves performance of large documents when using the continuous page view. (#1542)

- Improves shape annotations scaling behavior by keeping its stroke width when resizing. (#3002)

- Fixes an issue where annotations would move when resized to very small sizes. (#2910)

- Fixes an issue when `NutrientViewer.load()` was interrupted by `NutrientViewer.unload()` before the promise has resolved. (#2334)

- Fixes an issue where text widget annotations `isFitting` property would not be correctly calculated. (#2939)

- Fixes a race condition when `NutrientViewer.load()`, `NutrientViewer.unload()`, and `NutrientViewer.load()` was called synchronously. (#2947)

- Fixes an issue when the same search term was searched twice consecutively. (#2994)

- Fixes an issue where an error message was logged when placing a new text annotation while having the thumbnail toolbar open on Standalone. (#2952)

- Fixes an issue where the default minimum stamp annotation size, `NutrientViewer.Options.MIN_STAMP_ANNOTATION_SIZE`, was so small the stamp text wouldn't fit. (#2977)

- Fixes an issue that caused previously reported `minimumZoomLevel` and `maximumZoomLevel` to no longer be valid if the viewport was resized. (#2907)

- Fixes an issue that prevented certain annotation tools for a document that does not allow changing but enables commenting. (#2663)

- Fixes an issue where multi line text widgets did no longer accept text when do not scroll was enabled. (#3036)

- Fixes an issue where annotations and form fields were not visible in Standalone mode when rotating the document on Chrome Windows. (#3037)

- Fixes an issue where ink annotations with a blend mode value different than `normal` would lose the blend mode when selected in a rotated page. (#3053)

- Fixes an issue where `viewState` events would be emitted again if an API function in the event listener caused the view state to change. (#3064)

### Model

- API: Adds `Instance#getTextFromRects` to extract the text intersecting a list of rects. (#3040)

- Adds support for storing custom data on annotations. (#2862)

- Adds support for optionally preloading the WASM worker. (#2886)

- Adds `NutrientViewer.Options.TEXT_ANNOTATION_AUTOFIT_BOUNDING_BOX_ON_EDIT` to control whether PSPDFKit should adjust the text annotations' bounding box to fit the text in the annotation when editing it. (#2894)

- Adds `FontStyle` to Instant JSON widget annotations. (#C18083)

- Improves error handling when additional artifacts cannot be accessed. (#2811)

- Changes accessing `instance.connectedClients` to log a warning instead of throwing an error if PSPDFKit Instant is not enabled. (#2886)

- Loading PDF actions is now more reliable. (#C18843)

- Update libpng to 1.6.36. (#C18972)

- Update libjpeg-turbo to 2.0.2. (#C18973)

- Update ICU to version 63.1. (#C18974)

- Update zlib to 1.2.11. (#C18975)

- Fixes an issue where an annotation would be created even if it was invalid. (#2862)

- Fixes an issue where ink and shape annotations with transparent `strokeColor` were not being saved nor updated. (#2806)

- Fixes an issue where `strokeDashArray` was being serialized and deserialized even when its value was `null`. (#2924)

- Fixes an issue where form field values could not be saved when using `NutrientViewer.AutoSaveMode.DISABLED`. (#2934)

- Fixes an issue where `annotationSelection.change` would be emitted again if an API function was called from the `annotationSelection.change` event listener. (#2904)

- Fixes an issue where PSPDFKit Server may not identify form fields correctly. (#C18464)

- Fixes an issue where form field values may not be rendered correctly. (#C18465)

- Fixes an issue where some JPX images may not render correctly. (#C18648)

- Fixes issue with printing transparent ink strokes. (#C19102)

- Fixes an issue exporting instant shape annotations with transparent stroke colors. (#C19120)

- Fixes an issue when setting transparent colors in annotations. (#C19120)

- Fixes rendering of free text annotations with vertical alignment. (#C19145)

- Fixes an issue where edited text wasn't visible after saving the PDF. (#C19146)

- Fixes an issue when drawing a path using a pattern with alpha transparency. (#C19148)

- Fixes an issue when rendering text with an overlay blend mode. (#C19151)

- Fixes an issue where link annotations may not work correctly after a document is exported. (#C19222)

- Fixes an issue where text edited in form fields was incorrectly set in other form fields as well. (#C19236)

- Fixes an issue where QuadPoints of link annotations were saved to the PDF incorrectly. (#C19427)

- Fixes an issue where the `fillColor` property was ignored in Instant JSON for polyline annotations. (#C19443)

- Fixes a rare issue when parsing outlines. (#C19469)

- Fixes an issue where malformed widget annotations weren't correctly attached to the form. (#C19581)

### Example

- Adds a new Catalog Example that sets up a flipbook (page curl) effect. (#2867)

- Adds a new Catalog Example about using different print modes. (#2870)

- Adds a new Catalog Example about customizing the PDF search feature. (#2859)

- Adds a new Catalog Example showcasing customization of annotation's rendered content. (#2720)

### Instant

- Fixes an issue where updates and deletions shortly after creations were not properly propagated. (#2890)

## 2019.1.4 – 4 Apr 2019

### UI

- Fixes an issue where text widget annotations height would not be editable when height was too small. (#2903)

### Model

- Adds support for the cloudy border inset property (`RD`), transformed to a `cloudyBorderInsetRect` property in ellipse and rectangle annotations. (#2820)

- Fixes an issue where `instance.createAnnotation` would override the provided annotation properties with the current annotation preset properties. (#2931)

- Fixes an issue where annotations with a cloudy border may not be exported correctly. (#2831)

### Instant

- Adds support for `cloudyBorderInset` property (`RD`) in ellipse and rectangle annotations. (#2820)

## 2019.1.3 – 27 Mar 2019

### UI

- API: Adds public CSS classes for annotation resize anchor handlers and outline rect: `PSPDFKit-Resize-Anchor`, `PSPDFKit-Resize-Anchor-{position}` and `PSPDFKit-Selection-Outline-Rect`. (#2888)

- API: Adds public CSS classes for customizing tooltips. (#2917)

- API: Adds `Instance#setEditingAnnotation()` to select an annotation and enter edit mode. (#2893)

- Adds `NutrientViewer.Options.TEXT_ANNOTATION_AUTOFIT_TEXT_ON_EXPORT` to control whether PSPDFKit should adjust the font size to fit the text in the annotation bounding box when exporting the annotation. (#2881)

- Improves annotation tooltips position adjustment relative to selected annotations padding. (#2885)

- Fixes an issue where the instance could not be unloaded after the container node was detached from the DOM. (#2906)

- Fixes an issue where selected text markup annotations could not be deleted using the `Backspace` or `Delete` keys. (#2861)

- Fixes an issue with the latest versions of Chrome where wheel events are now passive by default and cause the host web page to be zoomed when pinching. (#2942)

### Model

- Adds `horizontalAlign` property to `WidgetAnnotation` for aligning text horizontally. (#2935)

- Fixes an issue where form field values could not be saved when using `NutrientViewer.AutoSaveMode.DISABLED`. (#2934)

- Fixes an issue where some layers were hidden incorrectly. (#C14439)

### Example

- Adds download buttons to the PWA and Catalog examples. (#2863)

- Fixes an issue with the iOS iPad full screen demo in the magazine catalog example. (#2750)

- Upgrade React example to latest versions. (#2926)

## 2019.1.2 – 28 Feb 2019

### UI

- Adds `SELECTION_OUTLINE_PADDING` and `RESIZE_ANCHOR_RADIUS` callbacks and `SELECTION_STROKE_WIDTH` to the configurable `NutrientViewer.Options` object. (#2793)

- Fixes an issue where `ToolItem` in annotation tooltip would break the viewer due to a runtime error. (#2833)

- Fixes `PrintMode.EXPORT_PDF` in Safari by not opening the PDF to print in a new window. (#2835)

### Model

- Do not check for installed Acrobat when trying to print in `EXPORT_PDF` print mode on IE11. (#2826)

- Fixes an issue where `NutrientViewer.FormFields#SignatureFormField` was not exposed despite being in the public documentation. (#2823)

- Fixes an issue with the random number generator for Standalone on IE11 and Edge. (#2802)

## 2019.1.1 – 14 Feb 2019

### UI

- Fixes an issue where image and stamp annotations were rendered in front of widget annotations. (#2776)

- Fixes an issue where the sidebar was having the incorrect height. (#2775)

- Fixes an issue that prevent bookmarks from properly being saved when using `AutoSaveMode.INTELLIGENT`. (#2778)

### Model

- Improves support for large documents when using PSPDFKit for Web Standalone. (#2792)

## 2019.1 – 7 Feb 2019

_See the [announcement post](/blog/pspdfkit-web-2019-1/)._

### UI

- API: Adds `ViewState#sidebarPlacement` to control the direction of the sidebar. (#2691)

- API: Adds transformation APIs to transform between PDF page space and the client space. (#2546)

- API: Adds an API to calculate a fitting bounding box for text annotations. (#2679)

- API: Adds `setEditableAnnotationTypes` and `isEditableAnnotation` to granularly define permissions for annotations. (#1756)

- Adds a cloudy border tool to polygon, rectangle and ellipse annotation toolbars. (#2528)

- Adds pinch zoom support on desktop devices with trackpad, or mouse on Chrome, Firefox and Safari. (#1263)

- Adds swipe support for per spread view on desktop devices with touch on Chrome, Firefox and Safari. (#2765)

- Improves ink annotation creation on the UI by splitting the annotation if its properties change. (#2683)

- Changes the default font families of the viewer to include more system fonts. (#2710)

- Fixes an issue where `NutrientViewer.defaultStampAnnotationTemplates` would need to be copied in order to modify it. (#2725)

- Fixes an issue where text form fields font auto sizing feature was not accounting for field padding. (#2685)

- Fixes an issue where checkbox fields checkmarks would overflow the field's bounds. (#2689)

- Fixes an issue by changing the default text highlighter and highlighter tool to match text selection highlight creation. (#2694)

- Fixes a bug when initializing a sidebar with the `initialViewState` API. (#2216)

- Fixes an issue where the dragging of the sidebar was delayed and could cause the dragging to continue although the pointer was released. (#2686)

- Fixes the default padding of annotation tooltip items. (#2709)

- Fixes an issue with note annotations permissions when annotationAndForms is set as document permission. (#2663)

- Fixes layout config drop down menu would not close when click outside. (#2708)

### Model

- Adds a cloudy border intensity field to polygon, rectangle and ellipse annotation models. (#2528)

- Adds annotations models default values to `NutrientViewer.defaultAnnotationPresets`. (#2718)

- Adds `NutrientViewer.Options.IGNORE_DOCUMENT_PERMISSIONS` to ignore the document permissions and enable all the features. (#2470)

- Adds support for cloudy borders in shape annotations and free text annotations via Instant JSON. (#C18547)

- Improves initial text parsing performance. (#C18534)

- Fixes an issue where creating an ink signature in combination with an event handler could trigger an error. (#2695)

- Fixes an issue where form field's `doNotSpellCheck` was mistyped as `doNotSpellcheck`. (#2729)

- Fixes an issue where instances of the core PDF engine deamon failed to close. (#C18551)

- Fixes an issue with importing/exporting color values which could lead to unnecessary appearance stream regeneration in the core engine. (#C18428)

- Fixes an issue where some image annotations may be rendered incorrectly. (#C18731)

### Example

- Adds a new Catalog Example showcasing drag and drop and other advanced customization options. (#2679)

## 2018.7.1 – 15 Jan 2019

### UI

- API: Adds public CSS classes for annotation toolbars toolboxes. (#2392)

- Adds persistence of properties to ink signatures. (#2479)

- Adds locked aspect ratio resize by keeping `Shift` pressed while resizing an annotation with the UI. (#2531)

- Adds automatic font size calculation for combo box widgets. (#2644)

- Adds configurable ink signatures save mode. (#2593)

- Adds `PSPDFKit-Icon-<IconType>` public CSS classes to style individual icons. (#2664)

- Adds 4pt, 6pt, 8pt, and 200pt to the list of possible font sizes for text annotations. (#C18485)

- Fixes an issue in Edge where the annotation toolbar layout would break when changing the font size. (#2225)

- Fixes an issue where rotating the page could eventually trigger a JavaScript TypeError. (#2622)

- Fixes an issue where markup annotations changes were not being persisted in the annotation preset. (#2621)

- Fixes an issue where the blend modes toolbox button would show the wrong title and aria-label, or no title nor aria-label. (#2614)

- Fixes an issue where ink signatures were created at the current page index instead of the related signature form field. (#2642)

- Fixes wrong computed document height when opening a sidebar. (#2652)

- Fixes an issue where the `minimumZoomLevel` and `maximumZoomLevel` where wrong on landscape documents. (#2661)

- Fixes an issue with custom `ToolbarItem` where the `selected` property was ignored. (#2662)

- Fixes an issue where the selected item was not shown in the list of font sizes for text annotations. (#2672)

- Fixes an issue when inferring the `baseUrl` threw errors when importing NutrientViewer. (#2666)

- Fixes an issue where some overflown text fields would not adjust the font size. (#2677)

- Fixes an issue while highlighting where the current highlight annotation would disappear if clicked. (#2675)

### Model

- API: Expose `WidgetAnnotation` interface. (#2640)

- Adds automatic fallback to non-streaming WASM compilation when the wasm file mime-type is not set to `application/wasm`. (#2624)

- Fixes an issue with license code verification on Electron. (#2668)

- Fixes a problem importing/exporting color values. This could lead to unnecessary appearance stream regeneration. (#C18428)

### Example

- Upgrades the Electron example app to use Electron 4.0. (#2668)

## 2018.7 – 18 Dec 2018

_See the [announcement post](/blog/pspdfkit-web-2018-7/)._

### UI

- API: Adds public CSS class for active Dropdown Buttons. (#2466)

- API: Adds missing public CSS classes for shape Toolbar Buttons. (#2532)

- API: Adds public CSS class for Text Highlighter Buttons. (#2532)

- API: Adds `ToolbarItem#node` to render custom DOM nodes in the main toolbar. (#2520)

- API: Adds `Configuration#annotationTooltipCallback` to configure a tooltip with tools for each annotation type. (#2540)

- API: Adds `ViewState#enableAnnotationToolbar` to enable or disable the annotation toolbar on select. (#2540)

- Adds optional smooth line rendering for ink annotations and ink signatures. (#1588)

- Adds new stroke color icon to avoid confusion for non closed shapes (ink, lines, polylines). (#2508)

- Adds a text highlighter tool. (#2468)

- Adds support for deleting selected annotations with Backspace and Delete keys. (#1405)

- Improves contrast of annotation toolbar icons. (#2508)

- Fixes the mixup between the border color and the fill color icons. (#2508)

- Fixes an issue where the last point of an ink annotation line being created was lost when releasing the pointer. (#2518)

- Fixes an issue where stamps UI would break when editing text. (#2445)

- Fixes an issue where some standard stamp annotations were being rendered as `Custom`. (#2467)

- Fixes an issue where stamp annotations were rendered rotated when viewing rotated documents. (#2486)

- Fixes bookmarks sidebar translations to be more accessible and self explanatory. (#2478)

- Fixes an issue in Firefox 60+ where the first text line of newly created note annotations would be deleted when pressing space. (#2482)

- Fixes an issue with `SidebarMode.BOOKMARKS` not being activatable via public API. (#2500)

- Fixes an issue where note annotations content new lines were not being rendered. (#2487)

- Fixes an issue where annotations could be deleted even though read only mode is enabled. (#2505)

- Fixes an issue where certain annotation toolbar items did not share the same height. (#2508)

- Fixes an issue where annotations hit test area was too wide. (#2127)

- Fixes an issue where setting className and icon for the layout-config got ignored. (#2536)

- Fixes an issue where the annotation toolbar for note annotations was shown when in read only mode. (#2461)

- Fixes an issue where text selection using the touch mode in Edge was not properly working. (#2407)

- Fixes an issue where annotations with the `noView` flag set were selectable, and were being rendered if selected. (#2476)

- Fixes an issue where stamp annotations added to rotated PDF pages were not rendered correctly. (#2521)

- Fixes an issue in IE11 where rendered squiggle annotations would spill out of its bounding box when zoomed. (#2553)

- Fixes an issue where the `styleSheets` array passed to `NutrientViewer.load()` was cleared after the first use. (#2561)

- Fixes an issue where the wrong `onPress` handler for multiple items in a dropdown group was triggered. (#2565)

- Fixes an issue where rendered squiggle annotations would shrink when the viewport was zoomed out. (#2555)

- Fixes an issue where `startUISearch()` did not emit the same events as a user-driven UI search. (#2573)

- Fixes an issue where the loading indicator for stamp and image annotations would be incorrectly positioned in IE11. (#2594)

- Fixes an issue where the stamp picker would have an excessive height in iOS devices. (#2597)

### Model

- API: Adds `NutrientViewer.Options` to modify default configurations. (#2171)

- Adds a new `rotation` property to `TextAnnotation`, `ImageAnnotation`, and `StampAnnotation`. (#2521)

- Adds `ToolItem` interface which `ToolbarItem` now extends. (#2540)

- Improves automatic font size calculation for text widgets. (#C18095)

- Improves handling of malformed documents when parsing the extended graphics state. (#C18057)

- Fixes an issue where custom stamps were not being correctly validated. (#2477)

- Fixes an issue where our previous change to force asm.js on Safari 11 was not working on some versions of Safari. (#2498)

- Fixes an issue where the `Parent` object was not checked when putting widgets into form fields. (#C17796)

- Fixes an issue where attachments provided via InstantJSON were not created upon initialization. (#2530)

- Fixes an issue when importing an annotation from XFDF when the bounding box is too large. (#C17901)

- Fixes issues when importing annotations on rotated pages using InstantJSON. (#C17814)

- Fixes some visualization issues with markup annotations, specially on rotated pages. (#C17889, #C18002, #C18024)

- Fixes an issue where squiggly annotations may not be created correctly on rotated pages. (#C17950)

- Fixes text parsing issue noticed on a very limited number of documents. (#C18032)

## 2018.6.1 – 16 Nov 2018

### UI

- Fixes broken PDF text parsing in Firefox, Edge, and IE 11. (#2473)

## 2018.6 – 13 Nov 2018

_See the [announcement post](/blog/pspdfkit-web-2018-6/)._

### UI

- API: Adds `viewStateFromOpenParameters()` to apply open parameters to a `ViewState`. (#1161)

- API: Adds `Configuration#disableOpenParameters` to disable PDF Open Parameters support. (#1161)

- API: Adds `Configuration#renderPageCallback` to draw arbitrary objects onto the page layer. (#1281)

- API: Adds `Instance#getSelectedRectsPerPage()` to get a list of all selected text rects in PDF page coordinates. (#2252)

- API: Adds a new toolbar item `sidebar-bookmarks`. (#2388)

- API: Adds public CSS class `PSPDFKit-Stamp-Annotation` for stamp annotations. (#2332)

- API: Adds public CSS class `PSPDFKit-Toolbar-Button-Stamp-Annotation` to the new stamp toolbar button. (#2432)

- API: Adds public CSS class `PSPDFKit-Toolbar-Button-Icon` for toolbar button icons. (#2435)

- API: Adds a new update events for ink signatures: `inkSignatures.update`. It will fire whenever a signature is either created, updated, or deleted. (#2363)

- Adds support for stamp annotations. (#2332)

- Adds support for viewing and creating bookmarks. (#2278)

- Adds support for comb of characters text input fields. (#2111)

- Adds translations for colors, highlighter and pen. (#2311)

- Adds support for preventing text from being copied. (#2274)

- Adds support for some [PDF Open Parameters](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDFOpenParameters.pdf). (#1161)

- Improves accessibility of modal dialogs. (#2291)

- Improves the word breaking behavior for text annotations. (#2261)

- Increases the maximum resolution of render page APIs. (#2419)

- Removes smooth scrolling in toolbar due to a known iOS Safari issue. (#2427)

- Fixes a bug where an initial page index was not properly applied. (#2317)

- Fixes an issue with `NutrientViewer.I18n.messages` exposing messages as ES6 modules. (#2295)

- Fixes an issue where keyboard page navigation would not work in IE 11. (#2299)

- Fixes an issue where a dropdown group with a single item would still show as a dropdown group. (#2284)

- Fixes an issue where it was not possible to opt-out an item from a dropdown group. (#2283)

- Fixes an issue where the pager toolbar item would disappear on MSEdge. (#2320)

- Fixes an issue when creating text markup annotations spanning across multiple pages. (#2337)

- Fixes an issue where some entries of a combo box input where not properly rendered. (#2322)

- Fixes crashes when using the DOM print mode on mobile devices and IE 11 by disabling high resolution printing. (#1882, #2089)

- Fixes a double update issue when changing attributes of text annotations. (#2261)

- Fixes an issue where a not supported font would not be shown as selected. (#2261)

- Fixes an issue where empty pages where appended on some browsers when using DOM printing. (#1521)

- Fixes an issue where image annotation rendering was sometimes failing when using a standalone deployment. (#2390)

- Fixes an issue where annotations with a `NoView` flag set were not printed. (#2350)

- Fixes an issue where text selection was not properly cleared when the pan tool was enabled. (#2391)

- Fixes an issue where toolbar items with data URL icons appear shifted to the left. (#2273)

- Fixes an issue where image annotations had the opacity applied twice. (#2436)

- Fixes an issue where annotations with `strokeWidth` equal to `0` and no fill color would be rendered. (#2454)

- Fixes an issue in IE11 and Edge where opacity settings would not be applied to image annotations. (#2409)

### Model

- API: Changed annotation APIs to not throw synchronously but reject with an Error instead. (#2305)

- API: Adds `Configuration#overrideMemoryLimit` to allow overriding the default memory limit for PSPDFKit for Web Standalone. (#1743)

- API: Adds `Bookmark` and instance methods for managing bookmarks. (#2388)

- Fixes an issue where the background of ink annotations was not printed. (#2041)

- Fixes an issue where annotations with `strokeWidth` equal to `0` would have it set to `5` (#2454)

### Core

- API: Adds `Annotations.StampAnnotation` for stamp annotations. (#2332)

- Forces asm.js on Safari 11. (#2361)

- Fixes form flattening with no fonts available leads to exported PDFs with empty fields. (#C17538)

### Example

- Adds Typescript example. (#2394)

- Updates PSPDFKit for Electron example to Electron 3. (#2098)

- Fixes a layout issue in the PWA example. (#2351)

### Instant

- Adds support for stamp annotations Instant. (#2332)

- Adds support for stamp annotations to Instant JSON. (#2332)

- Adds support for bookmarks Instant. (#2278)

- Adds support for bookmarks to Instant JSON. (#2278)

### Documentation

- Adds search to our API documentation. (#2294)

- Removes `new` to construct `Immutable.List` types. (#2300)

## 2018.5.2 – 16 Nov 2018

### UI

- Fixes broken PDF text parsing in Firefox, Edge, and IE 11. (#2473)

## 2018.5.1 – 10 Sep 2018

### UI

- Adds public CSS class `PSPDFKit-Image-Annotation` for image annotations. (#2264)

- Improves usability for invalid image annotations. (#2266)

- Fixes a bug that allowed the use of PDFs for image annotations via the toolbar button. (#2262)

- Fixes an issue where the loading indicator for image annotations was shown in a wrong position. (#2260)

- Fixes an issue in Safari where blend modes were not applied to ink annotations while drawing them or changing their blend mode. (#2251)

### Model

- Improves error messages for invalid image attachments. (#2259)

- Fixes an issue where some PDF pages could not be inserted as attachments for images. (#C16729)

## 2018.5 – 5 Sep 2018

_See the [announcement post](/blog/pspdfkit-web-2018-5/)._

### UI

- API: Adds new methods to control annotation presets: `Instance#annotationPresets`, `Instance#setAnnotationPresets`, and `PSPDFKit#defaultAnnotationPresets`. (#2077)

- API: Adds `Configuration#annotationPresets` and the `annotationPresets.update` event to make it possible to persist annotation presets. (#2077)

- API: Adds `ToolbarItem#preset` to create annotations with different presets. (#2077)

- API: Adds `Configuration#enableServiceWorkerSupport` to not bypass service workers when loading stylesheets. (#1963)

- API: Removes `InteractionMode.LAYOUT_CONFIGURATION`. (#1653)

- Adds support for image annotations. (#1202)

- Adds the document outline sidebar. (#2137)

- Adds the document annotations sidebar. (#2145)

- Adds new highlighter and arrow tool. (#2129)

- Adds support for vertical alignment of text annotations. (#1608)

- Adds persistence to user changes in the annotation toolbars by modifying its associated preset. (#2077)

- Adds public CSS classes for each button in the layout configuration option. (#2146)

- Adds `.PSPDFKit-Text-Markup-Annotation-selected` to match selected text markup annotations. (#2109)

- Improves performance of zooming and scrolling. (#2083)

- Fixes an issue where all squiggle annotations would inherit the same color of the last one created. (#2077)

- Fixes an issue where styles were not applied to widgets. (#1831)

- Fixes an issue where line caps were not being hidden in short lines. (#2147)

- Fixes an issue where some shape annotations were printed cropped. (#2149)

- Fixes an issue where relative URLs in CSS did not resolve correctly. (#1963)

- Fixes an issue where grouped toolbar buttons could not be disabled. (#2123)

- Fixes overflowing toolbar items are not visible. Now the toolbar can scroll horizontally. (#2189)

### Model

- API: Adds `Annotations.ImageAnnotation` for image annotations. (#1202)

- API: Adds `OutlineElement` and `Instance#getDocumentOutline` to expose the document outline. (#2137)

- API: Adds `Instance#createAttachment` and `Instance#getAttachment` to create attachments that can be used for image annotations. (#2152)

- API: Adds `Annotations.InkAnnotation#isSignature` to indicate when an ink annotation was created as signature. (#2112)

- Fixes an issue where form fields imported via XFDF where not showing up Instant JSON. (#C16463)

### Example

- Adds PWA (progressive web app) example. (#1996)

- Adds Vue.js example. (#2072)

- Updates dependencies of Webpack example. (#2099)

### Instant

- Adds support for image annotations and attachments to Instant. (#1202)

- Adds support for image annotations and attachments to Instant JSON. (#1202)

## 2018.4.3 – 16 Nov 2018

### UI

- Fixes broken PDF text parsing in Firefox, Edge, and IE 11. (#2473)

## 2018.4.2 – 24 Aug 2018

### Model

- Fixes an issue with XFDF on rotated pages. (#2158)

## 2018.4.1 – 31 Jul 2018

### UI

- Adds option to specify the number of password retries. (#2067)

- Adds `PSPDFKit-Annotation-Widget-read-only` as public CSS class. (#1646)

- Improves text selection behavior when there is padding between the individual text lines. (#2090)

- Changes `NutrientViewer.unload()` to be idempotent if a DOM element is passed without PSPDFKit for Web being mounted. (#2076)

- Fixes an issue where pinching zoomed the whole viewport. (#2070)

- Fixes an issue where locale does not attempt to fallback. (#2078)

- Fixes an issue with clipping annotations to the page. (#2075)

- Fixes an issue where the viewport was too large when zoomed in. (#2086)

- Fixes an issue where the text was not updated when changing the locale. (#2031)

- Fixes an issue with custom CSS on Firefox. (#2104)

- Fixes an issue with a missing translation. (#2092)

- Fixes an issue with unnecessary custom overlay items re-rendering. (#2107)

## Core

- Improves setup experience by adding better error messages. (#2085)

## 2018.4 – 12 Jul 2018

_See the [announcement post](/blog/pspdfkit-web-2018-4/)._

### UI

- Adds support for blend modes on Ink and Markup Annotations. (#1878)

- Adds support for shape annotations: line, rectangle, ellipse, polyline and polygon. (#1203)

- Adds public CSS classes for the Layout Config toolbar item and dropdown for easy styling. (#2064)

- Improves style of disabled buttons. (#1920)

- Changes the order of `NutrientViewer.defaultToolbarItems`. (#2039)

- Fixes a rendering issue that resulted into blurry pages at certain zoom levels. (#1824)

- Fixes an issue with IE 11 when editing text annotations. (#1958)

- Fixes an issue with IE 11 where pasted text got duplicated. (#1850)

- Fixes a bug where annotations where immediately draggable when using the `setSelectedAnnotation` API method. (#1969)

- Fixes a regression where form fields were read-only when the document permissions didn't permit modification. (#1976)

- Fixes an issue where setting the ViewState threw an Error when in read-only mode. (#1952)

- Fixes an issue where forms were not enabled when document permissions didn't permit modifying annotations and forms. (#1999)

- Fixes an issue when changing the properties of an ink annotation before drawing the first line when Instant is disabled. (#2004)

- Fixes an issue where annotation toolbars and some toolbar buttons included `undefined` as class name. (#2013)

- Fixes an issue with long text overflowing in the layout configuration dropdown. (#2023)

- Fixes an issue where the delete icon in the annotation toolbar was visible although the annotation was not created yet. (#2043)

- Fixes an issue where the text-align icon was not correct. (#2042)

- Fixes an issue with forms not rendering in standalone when rotating pages. (#2057)

- Fixes an issue which prevented scrolling modals on mobile. (#2046)

### Model

- API: Removes deprecated `Instance#renderCover`. (#1431)

- Fixes an issue where the default `Annotation#name` was sometimes out of sync with `Annotation#id`. (#1980)

- Fixes an issue where annotation changes made via the API where not automatically saved to the server when Instant is disabled. (#2005)

- Fixes an issue where invalid annotations crash the application. (#2004)

- Fixes an issue where the Instant Document JSON returned a permanent but no changing PDF ID. (#1847)

### Example

- Fixes a bug in the Rails example, where restarting the example container did not work. (#1971)

### Instant

- Fixes an issue where the annotation payload for Instant was including unnecessary information. (#1980)

## 2018.3.3 – 16 Nov 2018

### UI

- Fixes broken PDF text parsing in Firefox, Edge, and IE 11. (#2473)

## 2018.3.2 – 20 Jun 2018

### UI

- Fixes a regression where readOnly form fields where not properly disabled. (#1921)

- Fixes an issue with selection grippers not working on Windows touch devices. (#1925)

- Fixes an issue with contextual menus overlap the text markup annotation popover on some touch devices. (#1925)

- Fixes an issue where creating an ink annotation with a background color caused the page content to disappear. (#1916)

- Fixes an issue with stylesheets not being cached by a user defined service worker. (#1928)

### Model

- Fixes an issue with the newly introduced `isFitting` property for text annotations. (#C15597)

- Fixes an issue where search did not work in IE 11 when using standalone. (#1883)

- Fixes an issue with all the custom overlay items for a page being removed in bulk. (#1942)

## 2018.3.1 – 4 Jun 2018

### UI

- API: Adds `Configuration#disableIndexedDBCaching` to force disable caching of the WASM module when IndexedDB is supported. (#1905)

- API: Adds `Configuration#disableWebAssemblyStreaming` to force disable WebAssembly streaming instantiation. (#1907)

- API: Adds `Configuration#standaloneInstancesPoolSize` to configure the number of disposed instances to keep in memory for fast reuse. (#1908)

- Fixes an issue where forms were not rendered as read only when the server's `write` permission was not set. (#1870)

### Model

- Fixes a crash when setting the `interactionMode` and enabling `readOnly` mode at the same time. (#1901)

### Instant

- Adds annotation `note` to Instant JSON. (#C15404)

## 2018.3 – 31 May 2018

_See the [announcement post](/blog/pspdfkit-web-2018-3/)._

### UI

- API: Adds `NutrientViewer.Annotations.toSerializableObject` and `NutrientViewer.Annotations.fromSerializableObject` to convert annotations to and from serializable objects which adhere to the InstantJSON format. (#1704)

- Adds support for touch events on desktop browsers. (#1459)

- Adds support for ink signatures. (#1704)

  - API: Adds `Instance#getInkSignatures` to retrieve the list of ink signatures.

  - API: Adds `Instance#setInkSignatures` to set or update the list of ink signatures.

  - API: Adds `Configuration#populateInkSignatures` to load the initial list of ink signatures.

- Adds public CSS classes to Link Annotations for easy styling. (#1860)

- Improves the file size of the required style sheet. (#1795)

- Improves rendering performance when resizing the sidebar and when switching between page modes. (#1859)

- Fixes an with responsive toolbar groups including items from other groups. (#1784)

- Fixes responsive behavior of the text annotation toolbar. (#1800)

- Fixes a regression when copying text on IE 11. (#1454)

- Fixes an issue where multi line text widgets that have an automatic text size had a font size that was too big. (#1844)

- Fixes opacity of Text Annotations in editable mode. (#1799)

- Fixes an issue where opacity was being doubled on editing mode text annotations. (#1799)

### Model

- Adds a new annotation event: `annotations.load` that is triggered whenever annotations are loaded from the underlying data source. This was previously firing `annotations.create`. (#1690)

- Adds support for `fontSize` property on widget annotations. (#1747)

- Adds `Annotation#name` to all annotation records. This will default to the annotation identifier to mimic the behavior of our other platforms. (#C14856)

- Adds support for dynamic code loading to reduce bundle size. (#1755)

- Adds new instance events for ink signatures: `inkSignatures.create`, `inkSignatures.update`, `inkSignatures.delete`. (#1704)

- Adds support for password protected PDFs. (#1632)

- Fixes an issue where the loading of the initial annotations would not cause an event to be triggered when using Instant. (#1690)

- Fixes an issue with the `ViewState` API which allowed to change `InteractionMode` when the document was in read only mode. (#1838)

- Fixes an issue where the text of a TextAnnotation in the generated PDF was cut off. (#1275)

- Fixes a race condition when trying to use `Instange#getAnnotations` for a page that is loading its annotations. (#1871)

### Instant

- Adds annotation `name` to Instant JSON. Also renamed `pspdfkit/file` `name` to `filename` to prevent collisions. (#C14856)

- Adds `isFitting` to text annotations in Instant JSON. This property is used to correctly display the annotation in environments where the annotation's font is not available. (#977)

### Example

- Adds support for simple layer authentication to the Node.js example app. (#1817)

- Improves experience for Windows users for all example applications. (#1857)

- Update React and Webpack example apps to work with the new `pspdfkit-lib` asset directory. (#1826)

- Fixes an issue with the wrong mime types in the React example app. (#1825)

## 2018.2.2 – 16 Nov 2018

### UI

- Fixes broken PDF text parsing in Firefox, Edge, and IE 11. (#2473)

## 2018.2.1 – 2 May 2018

### UI

- Fixes an issue with responsive toolbar groups including items from other groups. (#1784)

- Fixes missing translation in search UI. (#1791)

### Model

- Fixes an issue where forms where not properly loaded when starting in read only mode. (#1794)

## 2018.2 – 28 Mar 2018

_See the [announcement post](/blog/pspdfkit-web-2018-2/)._

### UI

- API: Adds `Configuration#disableTextSelection` to disable text selection and `Configuration#disableHighQualityPrinting` to disable high quality printing. (#1424)

- API: Adds `Instance#getTextSelection()` and a new event `textSelection.change` to access the text selection state. (#1724)

- API: Adds `page.onPress` and `textLine.onPress` events to control clicks in the document. (#1724)

- API: Adds `Instance#jumpToRect()` to make sure a specific rect (in PDF page coordinates) is brought into the viewport. (#1750)

- API: Adds ability to create and add custom overlay items to the document. (#1709)

  - API: Adds `Instance#setCustomOverlayItem()` to create and update a custom overlay item.

  - API: Adds `Instance#removeCustomOverlayItem()` to remove a custom overlay item.

  - API: Adds `NutrientViewer.CustomOverlayItem` - a record to create custom overlay items.

- API: Adds I18n (internationalization) support. (#1732)

  - API: Adds `NutrientViewer.I18n` to access and modify internationalization data. (#1732)

  - API: Adds `Instance#locale` and `Instance#setLocale` to manage the application locale. (#1732)

- API: Adds support for customizing the search behavior. (#1739)

  - API: Adds `Instance#searchState`, `Instance#setSearchState()`, and `NutrientViewer.SearchState` to control the state of the search UI.

  - API: Adds `Instance#startUISearch()` as a shortcut to show the search box, type in a search term, and start the default search behavior.

  - API: Adds new search events: `search.stateChange` will be fired whenever `NutrientViewer.SearchState` updates, `search.termChange` will be fired whenever the user changes the search term.

- API: Adds `Instance#getSelectedAnnotation()`, `Instance#setSelectedAnnotation()`, and the event `annotationSelection.change` to interact with the currently selected annotation. (#1562)

- Adds PSPDFKit for Electron. (#1758)

- Adds I18n (internationalization) support. (#1732)

- Adds a customizable confirm dialog instead of using `confirm()`. (#1670)

- Adds support for iOS 11.3. (#1746)

- Improves rendering performance on low resolution and mobile devices. (#1727)

- Changes the breakpoint for showing note annotation contents in full screen. (#1783)

- Fixes ToolbarItems with not unique IDs render multiple times on resize. (#1728)

- Fixes an issue with an invalid cursor for the pan tool on Internet Explorer 11. (#1777)

- Fixes an issue where the wrong toolbar items where shown quickly after closing the native print dialog. (#1734)

- Fixes an issue with the layout of slider inputs on Microsoft Edge and Internet Explorer 11. (#1775)

- Fixes a rendering issue when using standalone deployments and rotated pages on WebKit. (#1778)

### Model

- Adds support for parsing `GoToEmbeddedAction`, `GoToRemoteAction`, `HideAction`, `JavaScriptAction`, `LaunchAction`, and `NamedAction`. (#1736)

- Adds `Instance#setAnnotationCreatorName()` to set the annotation creator name and `Annotation#creatorName` , `Annotation#createdAt`, and `Annotation#updatedAt` to an annotation. (#1714)

- Adds `Instance#search()` to find occurrences of a text string in the raw PDF. (#1739)

- Adds `NutrientViewer.SearchResult` to describe a search result. (#1739)

- Adds `Instance#renderPageAsArrayBuffer` to render a page as an `ArrayBuffer`. (#1431)

- Adds `Instance#renderPageAsImageURL` to render a page and get a URL to it. (#1431)

- Adds `Instance#getMarkupAnnotationText` to extract the text from markup annotations. (#1705)

- Adds validation for annotations created and/or updated via public API. (#1731)

- Improves `Instance#getAnnotations` to throw an error, when called with invalid arguments. (#1781)

- Fixes an issue in our WASM regression detection for iOS 11.2.6. (#1745)

- Fixes an issue with `exportXFDF` not preserving the document state. (#1768)

- Deprecates `Instance#renderCover`. (#1431)

### Example

- Adds the new PSPDFKit for Electron example. (#1758)

### Instant

- Adds createdAt, updatedAt and creatorName to Instant JSON. (#C14443)

## 2018.1.5 – 16 Nov 2018

- Fixes broken PDF text parsing in Firefox, Edge, and IE 11. (#2473)

## 2018.1.4 – 15 Mar 2018

No web-specific changes in this version.

## 2018.1.3 – 8 Mar 2018

- Fixes an issue where the wrong toolbar items where shown quickly after closing the native print dialog. (#1734)

- Fixes an issue in our WASM regression detection for iOS 11.2.6. (#1745)

## 2018.1.2 – 28 Feb 2018

- Adds support for automatically extracting links from text. (#C13944)

- Significantly reduces the memory usage for Standalone deployments. (#1453)

- Fixes clients presence connections failures that were not handled. (#1723)

## 2018.1.1 – 14 Feb 2018

- Fixes sidebar button not selected when the sidebar is open. (#1712)

## 2018.1 – 8 Feb 2018

_See the [announcement post](/blog/pspdfkit-web-2018-1/)._

- API: Adds support for rotating pages in the current view. (#1621)

  - API: Adds `ViewState#pagesRotation` to set the currently applied rotation.

  - API: Adds `ViewState#rotateLeft()` and `ViewState#rotateRight()` to rotate the current view by 90° clockwise or counterclockwise.

- API: Adds a new toolbar item `sidebar-thumbnails`. (#1614)

- API: Adds `ViewState#sidebarMode` to control the sidebar. (#1614)

- Adds support for rotating pages. (#1621)

- Adds support for importing and exporting XFDF. (#1651)

- Adds support for exporting Instant JSON on server setups. (#1662)

- Adds support for grouped checkbox form fields. (#1689)

- Adds WASM streaming initialization and caching for supported browsers. (#1644)

- Adds more runtime type checks to the `ViewState` API. (#1655)

- Adds sidebar for page thumbnails previews. (#1614)

- Adds keyboard shortcuts to change page using the left and right arrow keys. (#1666)

- Adds support for the `NoView` flag for all supported annotations. (#1683)

- Fixes a WASM regression on iOS 11.2.2 and 11.2.5 by disabling WASM support on these particular versions. (#1650)

- Fixes a bug where opening the `layout-config` menu will hide new ink drawings. (#1652)

- Fixes an issue where unchecked checkboxes were not properly exported. (#1673)

- Fixes a bug where pages were briefly rendered in the browser while printing. (#1678)

- Fixes keyboard shortcuts work in combination with `shift` key. (#1696)

## 2017.9.4 – 24 Jan 2018

No web-specific changes in this version.

## 2017.9.3 – 17 Jan 2018

- Fixes an issue when opening a PDF using the RESTProvider and a license without forms. (#1612)

- Fixes an issue when deleting an annotation using the RESTProvider. (#1635)

- Fixes a bug preventing client presences to be updated. (#1618)

- Fixes full screen keyboard shortcut instead open search. (#1609)

- Fixes incorrect text lines in some documents. (#C13148)

- Fixes an assertion when a non-specified named action was deserialized via Instant JSON. (#C13804)

- Fixes `PrintMode.EXPORT_PDF` not working in Edge and IE 11 for Standalone deployments. (#1640)

## 2017.9.2 – 20 Dec 2017

- Fixes permission compatibility with server. (#1601)

- Fixes `setFormFieldValue` sending malformed payload to the server. (#1599)

## 2017.9.1 – 15 Dec 2017

- Fixes an issue where trial licenses did not have the form license flag set. (#C13553)

## 2017.9 – 14 Dec 2017

_See the [announcement post](/blog/pspdfkit-web-2017-9/)._

- API: Adds support for programmatic form filling. (#936)

  - API: Adds `Instance#getFormFields()` to access form fields.

  - API: Adds `Instance#getFormFieldsValues()` and `Instance#setFormFieldsValues()` to easily access the current form field values.

  - API: Adds `WidgetAnnotation` to the annotation API. This annotation can never be modified and is used to render form fields.
  - API: Adds `SubmitFormAction` and `ResetFormAction`. The submit action will also fire `forms.willSubmit` and `forms.didSubmit`, respectively.

- API: Adds a new toolbar item type, `responsive-group`. This can be used to create groups of toolbar items for smaller screens. (#1412)

- Adds support for interactive forms. (#936)

- Adds support for filling forms via Instant. (#936)

- Adds a responsive mode to the toolbar. Annotation tools are now by default grouped under an “Annotate” option on small screens. (#1412)

- Adds headless mode to run PSPDFKit for Web without a user interface. (#1534)

- Fixes an error in Instant when two clients edit text annotations simultaneously. (#1522)

- Fixes flickering of the note annotation popover when a note annotation is selected. (#1363)

- Fixes an issue where default colors for highlight annotations were not rendered properly. (#C12938)

## 2017.8.1 – 6 Dec 2017

No web-specific changes in this version.

## 2017.8 – 22 Nov 2017

- Changes annotation IDs from numerical to client-side generated string IDs. (#1303)

- Fixes a bug that prevented text selection starting from non-text nodes. (#1492)

- Fixes impossible to deselect text. (#1492)

- Fixes canceled text lines requests in standalone resolve anyway. (#1506)

- Fixes an issue with Instant on documents without the `edit-annotations` permission. (#1451)

## 2017.7.1 – 15 Nov 2017

- Improved memory management for standalone deployments. (#1453)

- Fixes `getBaseUrl` removes part of the url in IE. (#1456)

- Fixes copied text includes new lines in Firefox and IE. (#1463)

## 2017.7 – 25 Oct 2017

_See the [announcement post](/blog/pspdfkit-web-2017-7/)._

- API: Adds `NutrientViewer.unload` to terminate running and loading instances in favor of the now deprecated `Instance#destroy`. (#1389)

- API: Adds new CSS classes to select annotations. (#1414)

- API: Adds new CSS class to select text. (#1406)

- API: Adds option to specify a `pageIndex` to the `Instance#renderCover` standalone API. (#1404)

- API: Adds option to disable WebAssembly when using standalone deployments. (#1416)

- API: Adds new `contentWindow` and `contentDocument` getters to the `Instance` to quickly access the content of the PSPDFKit viewer. (#1439)

- API: Adds API for printing and introduces printing modes. (#1319)

- API: Fixes the casing in CSS class names of specific note annotation icons to be more consistent. (#1414)

- Adds new printing mode `DOM`. This method will render all pages of the PDF document in advance before it sends the results to the printer. (#1319)

- Adds a new icon set for all toolbar items. (#1413)

- Adds pinching for touch devices in `PER_SPREAD` scroll mode. (#1315)

- Improved support for Apple Pencil. (#1415)

- Improved WebAssembly/asm.js loading time of subsequent initializations. (#1390)

- Fixes an issue where an Instant sync conflict was causing an invalid state. (#1347)

- Fixes an issue with the transition of note annotation popovers. (#1388)

- Fixes an issue that sometimes prevented the text caret to be drawn in IE 11 and Edge. (#1395)

- Fixes the position of the initial text caret on Safari. (#1396)

- Fixes a rendering issue that resulted into a blurry pages when using standalone deployments. (#1261)

- Fixes the spacing of color picker items in responsive mode. (#1414)

- Fixes an issue that emitted the wrong payload with the `annotations.delete` event. (#1423)

- Fixes an issue that caused a crash when the page index of an annotation was out of bounds. (#1397)

- Fixes an issue that prevent toolbar items from being disabled via the API. (#1432)

## 2017.6.1 – 2 Oct 2017

- Adds support for Internet Explorer 11 when using standalone deployments. (#C11782)

- Improves read-only mode for note annotations. (#1360)

- Improves error messages when invalid JWT token is supplied. (#1379)

- Changes the default breakpoint for the `layout-config` toolbar item. (#1364)

## 2017.6 – 18 Sept 2017

_See the [announcement post](/blog/pspdfkit-web-2017-6/)._

- API: `ViewState#pageSpacing` is now used for the spacing between pages in `LayoutMode.DOUBLE`. For the previous behavior, please use `ViewState#spreadSpacing` instead.

- API: Deprecates `ViewState#viewMode` and adds `ViewState#layoutMode` and `ViewState#scrollMode`. (#1272)

- API: Renames `ZoomMode.PAGE_FIT` and `ZoomMode.PAGE_WIDTH` to `ZoomMode.FIT_TO_VIEWPORT` and `ZoomMode.FIT_TO_WIDTH`. (#1277)

- API: Adds `ViewState#keepFirstSpreadAsSinglePage` to start with a single page in `LayoutMode.DOUBLE`. (#737)

- API: Adds `Instance#textLinesForPageIndex` to extract text content of a page. (#1302)

- Adds double page mode for both scroll modes. (#737)

- Adds support for zooming and scrolling in `PER_SPREAD` scroll mode. (#1285)

- Adds pagination by using the mouse scroll wheel in `PER_SPREAD` scroll mode. (#1285)

- Adds support for Note annotations. (#1235)

- Improves error messages for some APIs. (#1304)

- Improves performance when opening a big PDF with many annotations. (#1304)

- Improves user experience while rendering pages. (#1301)

- Fixes an issue where annotations imported via Instant JSON could no longer be updated or deleted. (#1312)

- Fixes an issue where the zoom level was not properly recalculated, when the viewport dimensions changed. (#1310)

- Fixes an issue with printing still working after being disabled via API. (#1324)

- Fixes an issue where an error was logged when refreshing the browser. (#1329)

- Fixes errors that ocurred when the root element was removed from the DOM, before the viewer finished loading. (#1328)

- Fixes a race condition that could occur when syncing annotations. (#1343)

## 2017.5.4 – 31 Aug 2017

No web-specific changes in this version.

## 2017.5.3 – 17 Aug 2017

- Fixes an issue with Chrome that prevented the document from rendering in certain environments. (#1293)

## 2017.5.2 – 9 Aug 2017

- Improves backoff behavior of Instant endpoint when an error occurs. (#1249)

- Fixes an issue where zooming in or out when text is selected caused a wrong popover position. (#1269)

- Fixes Safari/IE 11 not including request headers for tiles request. (#1283)

- Fixes `exportPDF` flattens by default converting annotations to non-editable content. We made it configurable. (#1276)

- Fixes an issue where a floating point font size for a text annotation causes two options with the same value in the dropdown list. (#1284)

## 2017.5.1 – 24 Jul 2017

- Improves standalone rendering speed. (#1243)

- Improves error logging in some cases. (#1251)

- Fixes the default save mode when using standalone deployments. (#1257)

- Fixes an issue with Edge when using standalone deployments. (#1250)

## 2017.5 – 20 Jul 2017

_See the [announcement post](/blog/pspdfkit-web-2017-5/)._

- API: Adds `Configuration#pdf` to load a PDF for client side rendering via an `URI` or an `ArrayBuffer`. (#966)

- API: Adds ability to create, read, update, and delete annotations as well as an API to observe annotation changes. (#937)

- API: Adds event before and after the annotations are saved. (#1150)

- API: Expose annotation interfaces (`Annotation`, `HighlightAnnotation`, `InkAnnotation`, `LinkAnnotation`, `SquiggleAnnotation`, `StrikeOutAnnotation`, `TextAnnotation`, `MarkupAnnotation` `UnderlineAnnotation`, `UnknownAnnotation`). (#1049)

- API: Exposes new primitives types (`Immutable.List`, `Geometry.Point`, `Geometry.DrawingPoint`, `Geometry.Rect`, `Geometry.Size` and `Color`). (#1031)

- API: Exposes PDF action types (`Actions.GoToAction`, `Actions.URIAction`). (#1037)

- API: Supports different save modes and adds ability to save annotations manually. (#964)

- API: Renames `viewstatechanged`, `currentpageindexchanged`, `zoomchanged` and `connectedclientschanged` events. (#1151)

- API: Adds `Instance#hasUnsavedAnnotations` to find out if unsaved annotations are present. (#1152)

- API: Adds `Instance#exportPDF` to access the raw PDF binary data as `ArrayBuffer`. (#1163)

- API: Adds `Instance#exportInstantJSON` and `Configuration#instantJSON` to serialize and deserialize the document state including all annotations using Instant JSON when no server is present. (#1158)

- API: Adds `Instance#renderCover` to render the first page as a thumbnail for client side rendering. (#1178)

- API: Allow to override onPress handlers for annotations. (#1175)

- API: Allow to overwrite the inferred base url for the Server in case the JavaScript is loaded from a different host. (#1185)

- Adds support for client side rendering using WebAssembly (wasm) or asm.js. Please visit our guides for more information. (#966)

- Adds support for bundling PSPDFKit for Web using an npm package. (#1098)

- Improves pinching performance on mobile devices. (#1085)

- Improves performance of tile rendering. (#1125)

- Fixes zoom buttons should only be hidden for touch devices. (#1077)

- Fixes error in the Custom Toolbar when `mediaQueries` is set to `undefined`. (#1080)

- Fixes cleanup of event listeners when drawing ink annotations. (#1061)

- Fixes a bug that caused Safari on iOS to trigger the default zoom behavior on double tap. (#859)

- Fixes an issue with `babel-polyfill`. (#1108)

- Fixes issue when quickly jumping through search results. (#1078)

- Fixes prevent text annotation to increase page size when created at the edge. (#1130)

- Fixes sliders' thumb position for Edge. (#1136)

- Fixes sliders' vertical alignment in IE 11. (#1136)

- Fixes an issue where the initial viewport size was wrong. (#1240)

- Fixes link annotations not clickable when in read-only mode. (#1242)

## 2017.4 – 16 May 2017

_See the [announcement post](/blog/pspdfkit-web-2017-4/)._

- API: Adds ability to customize and add new items to the main toolbar. (#1048)

- API: Adds new option `interactionMode` to `ViewState` to enable ink, text, search and pan mode. (#1003)

- API: Adds `version` to `PSPDFKit` to get the current version of PSPDFKit for Web. (#1047)

- Adds support for interacting with all annotation types (ink, text, highlight, squiggle, underline, strike-through, and link) on mobile devices. (#906)

- Adds a special annotation toolbar that appears when text is selected to allow the creation of markup annotations on mobile devices. (#1060)

- Adds pan tool to allow users to navigate on a desktop browser using mouse dragging. (#887)

- Improves the scrolling performance in Chrome browsers when an ink annotation is inside the viewport. (#616)

- Improves tiling by avoiding unnecessary calculations. (#1000)

- Improves ink annotation creation on different pages. (#985)

- Improves logging and descriptiveness of messages for errors in HTTP APIs. (#S1078, #S1110)

- Fixes issues with empty text annotations. (#821)

- Fixes an issue with text annotations that get dragged while they're changed. (#980)

- Fixes a bug that prevented the focus of the text annotation after clicking on it. (#1013)

- Fixes a bug that caused a wrong initial text selection within a text annotation. (#929)

- Fixes a bug that caused an exception when destroying the PSPDFKit for Web instance on IE 11. (#1034)

- Fixes the centering of the content inside the viewport. (#998)

- Fixes a bug where delete annotation can delete pdf assets. (#S1117)

## 2017.3.2 – 19 Apr 2017

- Adds CSS class for unsupported annotations and hides them by default. (#991)

- Fixes a bug where the `user_id` of the user performing a change was not always persisted. (#S1083)

## 2017.3.1 – 12 Apr 2017

- Adds a new license information page to the dashboard. (#S1074)

- Adds `cmd+g` and `cmd+shift+g` keyboard shortcuts to jump to the next/previous search result (macOS only). (#961)

- `load()` will now throw if the `container` element has children. (#957)

- Fixes buggy behavior in Firefox where the user needs to press backspace twice to start to delete from the end of a text annotation. (#974)

- Fixes a bug in Firefox where a NO-BREAK SPACE was inserted after the first line break. (#976)

- Fixes a bug when switching annotation modes. (#818)

## 2017.3 – 29 Mar 2017

_See the [announcement post](/blog/pspdfkit-web-2017-3/)._

- API: Adds option to enable read only mode. (#886)

- API: Adds option to hide annotations. (#886)

- API: Custom style sheets must now be set through the JavaScript API. (#630)

- API: Adds option to hide the print icon to `ViewState`. (#845)

- API: Adds many new public CSS classes. (#733)

- API: Adds documentation for `load()`. (#839)

- Adds support for printing documents. (#845)

- Adds new AUTO zoom mode for a better default experience. (#741)

- Adds support for flattening annotations into the PDF before it is downloaded. (#S1026)

- Adds support for permissions to selectively enable/disable viewing and editing features. These replace the old access control based on the `access` and `user_id` fields. (#S1031)

- Prevents CSS conflicts by encapsulating the viewer. (#630)

- Enforces `document_id` to be type of `string` in the JWT. (#824)

- Updates the format of the JWT used for authentication. (#S1031, #S1043)

- Removes border of link annotations. (#882)

- Fixes an error for Chrome >= 56 that was caused by Chrome making event handlers passive per default. (#792)

- Fixes z-index ordering for some annotations to prioritize newer ones. (#746)

- Fixes an issue that prevented dragging annotations in IE 11. (#870)

- Fixes an issue with editing a text annotation after reloading. (#852)

## 2017.2 – 17 Feb 2017

_See the [announcement post](/blog/pspdfkit-web-2017-2/)._

- API: The server will now always return and expect string document IDs. (#808)

- Adds HTTP API for working with annotations.

- Adds a debug mode to track down issues during development. (#760)

- Adds shortcuts to zoom in, out and back to page-fit.

- Shows toolbar when starting to create an ink or text annotation. (#801)

- Improves read-only mode. (#761)

- Improves the contrast of resize anchors. (#751)

- Improves the Dashboard experience.

- Search now also appears via CMD-G on macOS. (#758)

- Fixes an issue that sends an invalid search request. (#756)

- Fixes an issue where parts of the annotation toolbar disappeared. (#647)

- Fixes an issue with hidden toolbar buttons. (#794)

## 2017.1 – 25 Jan 2017

_See the [announcement post](/blog/pspdfkit-web-2017-1/)._

- Adds search. (#722)

- Adds custom dropdown to preview fonts. (#413)

- Optimizes ink annotations. (#590)

## 2016.3 – 21 Dec 2016

_See the [announcement post](/blog/pspdfkit-web-2016-3/)._

- Adds a dashboard for easy control over the server.

- Shows a font's name in the dropdown even if the font is not available. (#665)

## 2016.2.1 – 12 Dec 2016

- Fixes an issue with external events. (#699)

## 2016.2 – 8 Dec 2016

- Adds support for Internet Explorer 11. (#676)

- Removes white space after the last page on Firefox for Android. (#651, #652)

- Fixes an issue with text annotation clipping on Edge. (#644)

- Fixes an issue with PDF documents that have fractional page dimensions. (#660)

- Fixes an issue with the AnnotationToolbar position. (#661)

## 2016.1 – 1 Dec 2016

_See the [announcement post](/blog/pspdfkit-for-web/)._

- First public release.

---

## Related pages

- [Appian PDF viewer](/guides/web/appian.md)
- [Best practices](/guides/web/best-practice.md)
- [JavaScript barcode library: Scan, read, and generate barcodes](/guides/web/barcodes.md)
- [Samples](/guides/web/samples.md)
- [Contributing to Nutrient projects](/guides/web/miscellaneous/contributing.md)
- [Explore interactive JavaScript PDF demos](/guides/web/demo.md)
- [Download our JavaScript library](/guides/web/downloads.md)
- [JavaScript PDF library](/guides/web.md)
- [Developer guides for JavaScript PDF library](/guides/web/intro.md)
- [Knowledge base](/guides/web/kb.md)
- [Mendix PDF viewer](/guides/web/mendix.md)
- [Perform OCR on PDF documents](/guides/web/ocr.md)
- [OutSystems PDF viewer](/guides/web/outsystems.md)
- [Self-host assets in Web SDK](/guides/web/self-host-assets.md)
- [Troubleshooting](/guides/web/troubleshoot.md)

