Essential Studio® for Document Processing - v34.1.29 Release Notes
Common
Telemetry
Starting with this release (v34.1.29), Syncfusion Document SDK introduces telemetry (development-only) to help us better understand product usage, feature adoption, usage trends and make better product roadmap decisions.
Telemetry is enabled by default and collects only a limited set of anonymous usage data while applications are running in a development environment. Telemetry is automatically disabled in production environments, and no telemetry is collected from deployed production applications or end users.
Why we collect telemetry:
The collected telemetry helps us:
- Understand feature adoption and usage trends.
- Identify frequently used components and frameworks.
- Prioritize future product investments and roadmap decisions.
- Detect compatibility trends across .NET versions, operating systems, and development environments.
What information is collected?
Syncfusion collects only a limited set of anonymous usage data during development to understand product usage and improve product planning. No personal information or user-generated content is collected.
The following information may be collected:
- Component Name : The Syncfusion component being used (for example, PDF, DataGrid, or Chart). Used to understand component usage and adoption.
- Assembly Name : The Syncfusion assembly or package in use (for example, Syncfusion.Pdf.Portable). Used for product diagnostics.
- SDK Name : The Syncfusion SDK being used (for example, Document SDK). Used to understand SDK adoption.
- SDK Version : The SDK version shipped with the product. Used for release planning and compatibility analysis.
- Framework : The target development framework (for example, .NET). Used to understand framework adoption.
- Framework Version : The version of the target framework (for example, .NET 8). Helps prioritize framework support.
- Operating System : The operating system used during development (for example, Windows, Linux, or macOS). Used for platform compatibility analysis.
- Machine Architecture : Processor architecture (for example, x64, x86, or ARM64). Used to understand hardware trends.
- Session ID (Hashed) : A randomly generated identifier representing a single development session. Used to group telemetry events within the same session.
- Event Name : Product events (for example, component_initialized or feature_name). Used to understand component and feature usage trends.
NOTE
No user-generated content (e.g., code, files, or personal data) is collected
What information is Not collected?
Syncfusion does not collect:
- Personal information (name, email address, customer ID, company information)
- Source code
- Documents or files
- Application data
- User-generated content
- Business data
- Prompts or AI conversations
- Authentication credentials
- License keys
- Any information that can directly identify an individual
How to disable telemetry (Opt-out)
Telemetry can be disabled at any time by calling the Telemetry.Disable() method before using any Syncfusion Document SDK libraries.
using Syncfusion.Telemetry;
// Disable Syncfusion telemetry.
Telemetry.Disable();
// Your Syncfusion code follows here.
Once disabled, Syncfusion libraries continue to function normally. The only difference is that telemetry data will no longer be collected.
NOTE
Call
Telemetry.Disable()before creating or using any Syncfusion Document SDK objects
Document SDK AI Agent Tool
Features
- Added tools for importing and getting Markdown content in Excel and PowerPoint documents in Agent Tool Library.
PDF Library
.NET PDF Library
Features
- Updated the Blink binaries used in the HTML to PDF converter from version 140.0.7339.207 to 147.0.7727.56.
JavaScript PDF Library
Features
- Added support for rendering headers and footers in the JavaScript PDF library.
- Introduced support for text elements in the JavaScript PDF library.
- Added support for XMP metadata in the JavaScript PDF library.
Markdown Library
.NET Markdown Library
Features
- Introduced a new .NET Markdown library to create, edit, save, and clone Markdown documents.
- Added APIs to specify the Encoding type when opening and saving Markdown documents.
- Added an event to customize image handling during Markdown document loading and saving.
Word Library
.NET Word Library
Features
- Provided
WordDocument.Open(MarkdownDocument)API to get a Word document instance by using Markdown document instance. - Provided
WordDocument.GetMarkdownDocument()API to get WordDocument instance as MarkdownDocument. - Improved
ImportContentAPI performance for clone and merge operations by up to 70%.
Bug Fixes
- Sequence field switches are now updated properly while opening a DOCX document.
- The NullReferenceException will no longer be thrown while opening an RTF document with a shape element.
Excel Library
.NET Excel Library
Features
- Added support for Excel to Markdown conversion and vice versa.
- Added support for the place in cell option when inserting a picture in an Excel document.
- Improved performance by 25% when exporting the data table to an Excel document.
- Improved Excel to CSV conversion performance by 70% for date time, formula, and number cell types.
PowerPoint Library
.NET PowerPoint Library
Features
- Provided support for PPTX-to-Markdown and Markdown-to-PPTX conversion in PowerPoint library.
Smart Data Extraction Library
Features
-
Added support for customizable image saving in Markdown conversion from PDFs or images.
-
Added configurable OCR settings for more accurate and flexible data extraction.
PDF Viewer
Web PDF Viewer (Javascript, Angular, React, Vue, ASP.NET Core & MVC)
Features
-
I393057- Annotation Comment Filter – Introduced annotation filter support in the PDF Viewer, enabling users to efficiently manage and view annotations by applying filters based on specific criteria. The filter options can be accessed through the filter icon in the comments panel, allowing users to display only the annotations that match their requirements. Explore the documentation here -
I313209,I315475- Ink Eraser – Introduced ink eraser support in the PDF Viewer, allowing users to selectively remove or correct portions of freehand ink annotations drawn on a PDF document. This feature enhances annotation flexibility by enabling precise editing of ink strokes for improved accuracy and usability. Explore the documentation here
Breaking Changes
- Starting with this release (v34.1.29), no new features will be added to the Server-backed mode, as all the PDF Viewer functionalities are now available in the
Standalonemode. If you are currently using the server-backed mode, please refer to the migration documentation and migrate to theStandalonePDF Viewer.
Blazor PDF Viewer
Bug Fixes
-
#I832881- Resolved an issue of Exception thrown when navigating to another page when Organize PDF is disabled in PDF Viewer. -
#I835251- Resolved an issue of Unable to Add Annotations at the Maximum Edge of PDF Page -
#I834932- Resolved an issue of Zooming is not working as expected in Blazor MAUI Tablet devices in specific cases. -
#I839637- Resolved an issue of Free text annotation movement is incorrect when Move AllowedInteraction is set in specific cases. -
#I841880- Resolved an issue of PDF thumbnails not loaded when invoking OpenThumbnailPaneAsync API initially.
Features
-
#I821719- Improved Bookmark styling support in the Syncfusion PDF Viewer. Bookmark font colors are now correctly applied, ensuring accurate rendering and better visual consistency.
.NET MAUI PDF Viewer
Features
-
#FB70431- Provided support to enable or disable the double-tap zoom functionality in the PDF Viewer, allowing users to control zoom behavior for an improved viewing experience. For more information, click here. -
#FB72467- Provided support to set all form fields to read-only in the .NET MAUI PDF Viewer, ensuring that users can view the form data without the ability to modify or interact with the fields. For more information, click here -
#FB62724- Provided support to trigger an event upon completion of the print operation in the .NET MAUI PDF Viewer, enabling applications to perform post-print actions or notifications. For more information, click here
DOCX Editor
Web DOCX Editor (Javascript, Angular, React, Vue, ASP.NET Core & MVC)
Bug Fixes
#F827048 - Fixed status bar hiding issue when double-clicking the ribbon tab.
Spreadsheet Editor
Web Spreadsheet Editor (Javascript, Angular, React, Vue, ASP.NET Core & MVC)
Features
- Smart Spreadsheet - Introduced an AI-powered assistant that enables users to perform spreadsheet operations using natural language through a chat-based interface. Supports editing, formatting, data analysis, and visualization with real-time updates and full undo/redo support. Explore the demo link here.
- Subscripts and superscripts - Added support for applying subscript and superscript formatting to selected text within a cell during editing, improving readability for scientific, mathematical, and structured data. Explore the demo link here.
-
Suspend and resume UI refresh - Provided support to pause and resume UI refresh, improving performance during multiple updates. Instead of refreshing after each change, updates can be grouped and applied in a single refresh, reducing rendering overhead. Explore the demo link here.
Method Description suspendRefreshPauses UI updates during multiple operations resumeRefreshApplies all updates with a single UI refresh
Blazor Spreadsheet Editor
Features
-
#I796974,#I798854- Added support to save spreadsheets in XLS, CSV, and PDF formats for easy sharing and cross-platform use while preserving data accuracy and formatting. This can be done through the ribbon UI or programmatically using theSaveAsyncmethod. PDF export also includes customizable layout options such as page fit and orientation. Explore the demo link here.Code Example:
<button @onclick="SaveAsPdf">Save as PDF</button> <SfSpreadsheet @ref="SpreadsheetInstance" BeforeSave="OnBeforesave"> <SpreadsheetRibbon></SpreadsheetRibbon> </SfSpreadsheet> @code { public SfSpreadsheet SpreadsheetInstance { get; set; } public async Task SaveAsPdf() { await SpreadsheetInstance.SaveAsync(new SaveOptions { SaveType = SaveType.Pdf, FileName = "Spreadsheet" }); } public void OnBeforesave(BeforeSaveEventArgs args) { if (args.SaveType == SaveType.Pdf) { args.PdfLayoutSettings = new PdfLayoutSettings { FitSheetOnOnePage = true, Orientation = PdfPageOrientation.Landscape }; } } } -
#I786758- Added support for ribbon customization to personalize the spreadsheet interface. Users can add tabs and groups, modify existing elements, and rearrange controls to suit their workflow. Customizations can be applied during initialization or updated dynamically at runtime. Explore the demo link here.Code Example:
<button @onclick="DisableRibbonItems">DisableRibbonItems</button> <button @onclick="EnableRibbonItems">EnableRibbonItems</button> <SfSpreadsheet @ref="SpreadsheetInstance"> <SpreadsheetRibbon></SpreadsheetRibbon> </SfSpreadsheet> @code { public SfSpreadsheet SpreadsheetInstance { get; set; } public void DisableRibbonItems() { SpreadsheetInstance.DisableRibbonItems(new List<string> { "italic", "bold" }); } public void EnableRibbonItems() { SpreadsheetInstance.EnableRibbonItems(new List<string> { "italic", "bold" }); } } -
#I809651- Added support for conditional formatting to enhance data visualization with highlight rules, top/bottom rules, color scales, data bars, and icon sets. Formatting can be applied through the UI or programmatically usingConditionalFormatAsyncandClearConditionalFormatsAsyncmethods, with updates applied dynamically as data changes. Explore the demo link here.Code Example:
<button @onclick="ApplyPerformanceRating">Apply Performance Rating</button> <button @onclick="ClearFormatting">Clear Formatting</button> <SfSpreadsheet @ref="SpreadsheetInstance" AllowConditionalFormat="true"> <SpreadsheetRibbon></SpreadsheetRibbon> </SfSpreadsheet> @code { public SfSpreadsheet SpreadsheetInstance { get; set; } private async Task ApplyPerformanceRating() { var rule = new ConditionalFormatRule { ConditionalFormatType = ConditionalFormatType.FiveRating, Range = "E2:E50" }; await SpreadsheetInstance.ConditionalFormatAsync(rule); } private async Task ClearFormatting() { await SpreadsheetInstance.ClearConditionalFormatsAsync("E2:E50"); } } -
Added support for auto aggregation to perform quick calculations such as sum, average, minimum, maximum, and count for selected ranges in the spreadsheet footer. Results update dynamically as data changes. Explore the demo link here.
-
Introduced new properties and methods to provide enhanced control and flexibility over spreadsheet operations. These additions enable advanced functionality customization and improved user experience control:
Property Name Purpose AllowOpenEnables or disables the ability to open spreadsheets via UI and programmatic methods. AllowSaveEnables or disables the ability to save or download spreadsheets. ShowSheetTabsShows or hides the sheet tabs for navigating among sheets and managing sheets via UI. AllowInsertEnables or restricts row, column, and sheet insertion functionality. AllowDeleteEnables or restricts sheet deletion functionality. CalculationModeDetermines how and when formulas are recalculated, supporting “Automatic” and “Manual” modes. AllowUndoRedoEnables or disables undo and redo functionalities. AllowTextWrapControls text wrapping behavior within cells. EnableKeyboardNavigationEnables or disables keyboard navigation within the spreadsheet. EnableKeyboardShortcutEnables or disables keyboard shortcuts for common actions. ShowAggregateShows or hides aggregate values in the footer section of the spreadsheet. Method Name Purpose GetDisplayTextReturns the formatted, user-visible text representation of a cell based on its address. EnableContextMenuItemsEnables specified items in the context menu for user interaction. DisableContextMenuItemsDisables specified items in the context menu while keeping them visible. RemoveContextMenuItemsRemoves specified items from the context menu entirely. ClearAsyncClears contents, formatting, hyperlinks, or all aspects from specified ranges. CalculateAsyncTriggers immediate formula recalculation at workbook, worksheet, or sheet index level. SetColumnWidthAsyncSets the width of specified columns programmatically. SetRowHeightAsyncSets the height of specified rows programmatically. ProtectSheetAsyncApplies protection to worksheets in the workbook. UnprotectSheetAsyncRemoves protection from worksheets in the workbook. AddDefinedNameAsyncAdds named ranges to the workbook with configurable scope. RemoveDefinedNameAsyncRemoves existing named ranges from the workbook. UndoReverts the most recent action in the spreadsheet. RedoReapplies the most recently undone action. OpenAsyncOpens spreadsheet files from streams asynchronously, supporting multiple formats.
WPF Spreadsheet Editor
Bug Fixes
- An issue related to memory leak occurring after disposing SfSpreadsheet control in WPF application has been fixed.
Test Results
| Component Name | Platform | Test Cases | Passed | Failed | Remarks |
|---|---|---|---|---|---|
| Calculate Library | .NET | 145 | 145 | 0 | All Passed |
| DOCX Editor | Blazor | 2004 | 2004 | 0 | All Passed |
| DOCX Editor | Web(Javascript, Angular, React, Vue, ASP.NET Core & MVC) | 5294 | 5294 | 0 | All Passed |
| Excel Library | .NET | 37994 | 37994 | 0 | All Passed |
| Metafile Renderer | .NET | 897 | 897 | 0 | All Passed |
| PDF Library | .NET | 14107 | 14107 | 0 | All Passed |
| PDF Viewer | Blazor | 16700 | 16700 | 0 | All Passed |
| PDF Viewer | Web(Javascript, Angular, React, Vue, ASP.NET Core & MVC) | 21897 | 21897 | 0 | All Passed |
| PDF Viewer | Windows Forms | 209 | 209 | 0 | All Passed |
| PDF Viewer | WPF | 3040 | 3040 | 0 | All Passed |
| PDF Viewer | .NET MAUI | 15368 | 15368 | 0 | All Passed |
| PowerPoint Library | .NET | 54547 | 54547 | 0 | All Passed |
| Spreadsheet | WPF | 2717 | 2717 | 0 | All Passed |
| Spreadsheet | Blazor | 5094 | 5094 | 0 | All Passed |
| Spreadsheet | Web(Javascript, Angular, React, Vue, ASP.NET Core & MVC) | 10887 | 10887 | 0 | All Passed |
| Word Library | .NET | 41176 | 41176 | 0 | All Passed |
| Word Library | Java | 4079 | 4079 | 0 | All Passed |