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.

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 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