Essential Studio® for Document Processing - v31.2.12 Release Notes

PDF Library

.NET PDF Library

Bug Fixes

  • I783053 - Fixed an issue where a DateTime exception 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 where NullReferenceException occurred 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 calling UpdateDocumentFields API.
  • 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.

Excel Library

.NET Excel Library

Bug Fixes

  • #I780656 - No exception is thrown when saving an XLS file that contains a WMF image.
  • #I780677 - Resaving an Excel file no longer throws an exception due to whitespace handling during parsing.
  • #I781132 - No exception occurs when applying markers with an ExpandoObject.
  • #I780809 - Formula text is preserved correctly when using the ExportDataTable method.
  • #I775842 - No exception occurs when a cell refers to another cell that contains a circular reference.
  • #I782989 - No exception is thrown when opening an Excel workbook that uses the OOXML namespace.

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.

PDF Viewer

Web PDF Viewer (Javascript, Angular, React, Vue, ASP.NET Core & MVC)

Bug Fixes

  • #I776714 - Resolved an issue where text search was not working when using an unclosed tag in the search box.
  • #I780148 - Resolved an issue where signature field appeared empty when opening customer document in PDF Viewer.
  • #I780154 - Resolved an issue where PDF was not rendering when opening customer document in Vue 3 PDF Viewer.
  • #I780207 - Resolved an issue where delete icon was not enabled in annotation toolbar when delete was set in allowedInteractions.

Blazor PDF Viewer

Bug Fixes

  • #I780530 -Resolved an issue where an exception occurred when double-clicking a FreeText annotation while the toolbar was not injected of the PDF Viewer.
  • #I782463 -Resolved an exception that occurred during double-tap and other interactions with FreeText annotations on mobile devices of the PDF Viewer.

.NET MAUI PDF Viewer

Bug Fixes

  • #I763117- The application no longer crashes when navigating to and away from the PDF Viewer on the Android platform.
  • #I779963- The PDF Viewer no longer throws a System.NullReferenceException when adding arrow annotations on the iOS platform.

WPF PDF Viewer

Bug Fixes

  • I781836 - NullReferenceException will no longer be thrown while getting the page annotations.

DOCX Editor

Web DOCX Editor (Javascript, Angular, React, Vue, ASP.NET Core & MVC)

Bug Fixes

#I776220 - Fixed an issue where the table fill color was not applied correctly.
#I778750 - Resolved loss of alignment, line spacing, and font settings.
#I770477 - Corrected cell width after merge operations.
#I783704 - Ctrl+F now opens the Find pane as expected.
#I775650 - “No Color” highlight option now shows a pointer cursor like other buttons.
#I783047 - Corrected superscript formatting when typing a comma.
#I770706 - Undo now restores the original bullet-point formatting.
#I774637 - Spell-check suggestions now display properly.
#I779125 - Resolved a script error during DOCX export.
#I773853 - The showRevisions property now works correctly in protected documents.
#I763990 - Resolved an issue where footnotes were undefined during serialization.
#I781625 - Resolved selection issues with nested bookmarks when using the navigateToNextEditingRegion API.
#I780167 - Improved responsiveness during text insertion and backspacing.
#I776105 - Images no longer clip when “Exactly” line spacing is applied.
#I778204 - The cursor is now visible in empty editable regions.

Blazor DOCX Editor

Bug Fixes

#I776220 - Fixed an issue where the table fill color was not applied correctly.
#I778750 - Resolved loss of alignment, line spacing, and font settings.
#I770477 - Corrected cell width after merge operations.
#I783704 - Ctrl+F now opens the Find pane as expected.
#I783047 - Corrected superscript formatting when typing a comma.
#I770706 - Undo now restores the original bullet-point formatting.
#I774637 - Spell-check suggestions now display properly.
#I779125 - Resolved a script error during DOCX export.
#I763990 - Resolved an issue where footnotes were undefined during serialization.
#I781625 - Resolved selection issues with nested bookmarks when using the navigateToNextEditingRegion API.
#I780167 - Improved responsiveness during text insertion and backspacing.
#I776105 - Images no longer clip when “Exactly” line spacing is applied.
#I778204 - The cursor is now visible in empty editable regions.

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 the beforeSave event.

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 the GetData method. 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 of CellUpdateItem entries (each representing a cell address and value). Apply updates by calling UpdateCellsAsync. 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 the GetActiveWorksheet method, 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
    WorksheetAdding WorksheetAddingEventArgs Name, Index, Cancel Triggered when a new worksheet is being added. Allows canceling insertion, customizing the sheet name, or specifying the insertion index.
    BeforeSave BeforeSaveEventArgs FileName, Cancel, SaveType Triggered when saving the workbook. Allows canceling the save operation or customizing the output file name for tailored save workflows.
    CellEditing CellEditingEventArgs Address, 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.
    CellSaved CellSavedEventArgs Address, 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