Essential Studio® for Document Processing - v31.2.12 Release Notes
PDF Library
.NET PDF Library
Bug Fixes
-
I783053- Fixed an issue where aDateTimeexception occurred while saving the document. -
I764313- Resolved an issue with PDF font rendering where bold styling was not applied when using non-native bold fonts. -
I781695- Fixed an issue where JavaScript actions were not properly removed from the PDF document. -
I777023- Resolved an issue related to DOCX to PDF conversion, involving negative value errors and problems with Thai text and image rendering. -
I779951- Fixed an issue where a hanging issue occurred while appending a new document to a specified PDF. -
I775875- Fixed an issue whereNullReferenceExceptionoccurred while merging PDFs. -
I780223- Fixed an issue where incorrect tag order appeared in ordered and unordered lists in tagged PDFs. -
I780793- Fixed an issue where an exception occurred when exporting annotations from a loaded document. -
I780339- Fixed an issue where a preservation issue occurred in radio buttons when using the selected index.
Word Library
.NET Word Library
Bug Fixes
-
I781743- The OverflowException will no longer be thrown while opening a DOCX document containing shape with gradient fill. -
I781785- REF field result is now preserved properly after callingUpdateDocumentFieldsAPI. -
I780036- Corruption will no longer occur after resave a Word document with EMF image. -
I751641- Invalid empty paragraph will no longer be preserved while converting HTML document to PDF. -
I762035- GroupEnd field will no longer be preserved when the BeforeClearField event is triggered during mail merge. -
I782572- Linked images in header footer are now preserved properly after resaving document multiple. -
I775187- Hanging issue will no longer occur due to textbox with height greater than the section while converting a Word to PDF. -
I776816- Textbox content is now preserved properly while converting a Word document with text wrapping to PDF. -
I778215- The NullReferenceException will no longer thrown due to table alignment in footer while converting Word document to PDF. -
F70681- Hanging issue will no longer thrown due to unavailable font while converting a Word document to PDF.
PowerPoint Library
.NET PowerPoint Library
Bug Fixes
-
I781632- The ArgumentException is no longer be thrown while saving the PowerPoint document with chart containing multiple images.
Spreadsheet Editor
Web Spreadsheet Editor (Javascript, Angular, React, Vue, ASP.NET Core & MVC)
Features
- Added horizontal scrolling via Shift + mouse wheel, enabling faster navigation across wide worksheets and large column sets.
-
#I755354- Introduced an option to perform save operations without Web Workers to comply with strict Content Security Policies (CSP) and improve compatibility in secure environments. This behavior can be enabled dynamically on the client through thebeforeSaveevent.
Bug Fixes
-
#I776772- Issue with “deleting content selected with the mouse in the formula bar not reflecting in the cell editor” has been resolved. -
#I779573- Issue with “cell selection via mouse drag not updating correctly in the Spreadsheet’s finite mode” has been resolved.
Blazor Spreadsheet Editor
Features
-
#I761802- Provided support to retrieve data from a single cell or a range of cells using theGetDatamethod. The returned value is a dictionary where each key is the cell address (for example, “A1”) and each value is a structured object containing the cell’s content, format, display text, wrap/lock states, hyperlink (if available), and computed style.Code Example:
<button id="GetSpreadsheetData" @onclick="GetSpreadsheetData">Get Spreadsheet Data</button> <SfSpreadsheet @ref="SpreadsheetReference" DataSource="DataSourceBytes"> <SpreadsheetRibbon></SpreadsheetRibbon> </SfSpreadsheet> @code { public SfSpreadsheet SpreadsheetReference { get; set; } public void GetSpreadsheetData() { var data = SpreadsheetReference.GetData("A1"); // Use or display the returned dictionary of cell data as needed. } } -
#I745104- Provided support for batch updates across multiple cells using a list ofCellUpdateItementries (each representing a cell address and value). Apply updates by callingUpdateCellsAsync. Values can be strings, numbers, or formulas.Code Example:
<button id="UpdateBatchCellsValue" @onclick="UpdateCellValues">Update Batch Cells Value</button> <SfSpreadsheet @ref="SpreadsheetReference" DataSource="DataSourceBytes"> <SpreadsheetRibbon></SpreadsheetRibbon> </SfSpreadsheet> @code { public SfSpreadsheet SpreadsheetReference { get; set; } public async Task UpdateCellValues() { var updates = new List<CellUpdateItem> { new CellUpdateItem { CellAddress = "Sheet1!A1", Value = "Header" }, new CellUpdateItem { CellAddress = "Sheet1!B1", Value = "Value" }, new CellUpdateItem { CellAddress = "Sheet1!A2", Value = 100 }, new CellUpdateItem { CellAddress = "Sheet1!B2", Value = 200 }, new CellUpdateItem { CellAddress = "Sheet1!C1", Value = "Total" }, new CellUpdateItem { CellAddress = "Sheet1!C2", Value = "=SUM(A2:B2)" }, // Apply "Batch Fill" to cells A1 through A10 new CellUpdateItem { CellAddress = "Sheet1!A1:A10", Value = "Batch Fill" } }; await SpreadsheetReference.UpdateCellsAsync(updates); } } -
#I761802- Provided support to retrieve detailed properties of the active worksheet via theGetActiveWorksheetmethod, including its name, index, row and column counts, active cell address, and selected range.Code Example:
<button id="GetActiveSheet" @onclick="GetActiveSheet">Get Active Sheet</button> <SfSpreadsheet @ref="SpreadsheetReference" DataSource="DataSourceBytes"> <SpreadsheetRibbon></SpreadsheetRibbon> </SfSpreadsheet> @code { public SfSpreadsheet SpreadsheetReference { get; set; } public void GetActiveSheet() { var active = SpreadsheetReference.GetActiveWorksheet(); if (active != null) { Console.WriteLine($"{active.Name} [{active.Index}] - Selected: {active.SelectedRange}"); } } } -
Provided comprehensive keyboard shortcut support to accelerate formatting, autofill, sheet management, file operations, navigation, and selection.
Keys Description Ctrl + B Apply bold formatting to the selected cells. Ctrl + I Apply italic formatting to the selected cells. Ctrl + U Apply underline formatting to the selected cells. Ctrl + D Autofill down from the active cell. Ctrl + R Autofill right from the active cell. Shift + F11 Insert a new sheet. Ctrl + Shift + L Apply or remove filters. Ctrl + O Open an existing workbook file. Ctrl + S Save the current workbook. Ctrl + Home Go to cell A1. Ctrl + End Go to the last used cell. Ctrl + Arrow keys Navigate to the edge (first/last used cell) from the active cell. Ctrl + Space Select the entire column. Shift + Space Select the entire row. Ctrl + Shift + Space Select the entire sheet. -
#I770758,#I618842- Introduced new events to provide greater control over spreadsheet interactions and workflows.Event Information
Event Name Argument Name Properties Description WorksheetAddingWorksheetAddingEventArgsName, Index, Cancel Triggered when a new worksheet is being added. Allows canceling insertion, customizing the sheet name, or specifying the insertion index. BeforeSaveBeforeSaveEventArgsFileName, Cancel, SaveType Triggered when saving the workbook. Allows canceling the save operation or customizing the output file name for tailored save workflows. CellEditingCellEditingEventArgsAddress, Value, RowIndex, ColumnIndex, Cancel Triggered when a cell enters edit mode. Enables canceling the edit or applying custom logic based on the cell’s address, value, or position. CellSavedCellSavedEventArgsAddress, OldValue, Value, DisplayText, Action Triggered after a cell’s value is saved. Useful for tracking changes or applying logic based on address, old/new values, display text, and update action. -
Enhanced sorting performance across varied data sizes, delivering significant speed improvements:
Performance Benchmark Comparison
Scenario Performance Gain 500R × 7C (3,500) 61.90% faster 1000R × 8C (8,000) 94.16% faster 2000R × 8C (16,000) 99.87% faster 5000R × 8C (40,000) 99.56% faster
Test Results
| Component Name | Test Cases | Passed | Failed | Remarks |
|---|---|---|---|---|
| Calculate | 138 | 138 | 0 | All Passed |
| Calculate | 6 | 6 | 0 | All Passed |
| DOCX Editor(Document Editor) | 1944 | 1944 | 0 | All Passed |
| DOCX Editor(Document Editor) | 5023 | 5023 | 0 | All Passed |
| Excel Library(XlsIO) | 37754 | 37754 | 0 | All Passed |
| Metafilerenderer | 863 | 863 | 0 | All Passed |
| Pdf Library(Pdf) | 13938 | 13938 | 0 | All Passed |
| Pdf Viewer | 19130 | 19130 | 0 | All Passed |
| PdfViewer | 2998 | 2998 | 0 | All Passed |
| PdfViewer | 207 | 207 | 0 | All Passed |
| PowerPoint Library | 54397 | 54397 | 0 | All Passed |
| SfPdfViewer | 14684 | 14684 | 0 | All Passed |
| SfPdfViewer2 | 13107 | 13107 | 0 | All Passed |
| SfSpreadsheet | 2449 | 2449 | 0 | All Passed |
| Spreadsheet | 1917 | 1917 | 0 | All Passed |
| Spreadsheet | 10411 | 10411 | 0 | All Passed |
| Word Library(DocIO) | 39899 | 39899 | 0 | All Passed |
| Word Library(DocIO) | 4079 | 4079 | 0 | All Passed |