GroupDocs.Editor for Java 24.9 Release Notes

GroupDocs.Editor for Java version 24.9 brings a set of new features, bug fixes, and improvements to enhance the user experience and functionality. Detailed information about these changes is provided below.

Full List of Issues Covering All Changes in This Release

KeyCategorySummary
EDITORNET-2769Introduce a new feature to provide API for Form field managingNew feature
EDITORNET-2763ArgumentNullException on Graphics.MeasureStringBug
EDITORNET-2790Exception while saving edited HTML with multiple stylesheets to documentBug
EDITORNET-2791InvalidOperationException: DIV inside li in WordProcessing - ShapeProcessorBug
EDITORNET-2794Allow creating new document without callback functionImprovement
EDITORNET-2796Update project dependencies to latestImprovement
EDITORNET-2793Remove Enums inherited from ByteBug
EDITORNET-2823New FeatureRefactor the Formats.IDocumentFormat class in GroupDocs.Editor to address issues encountered in Node.js environments.
EDITORNET-2828TaskCreate Editor Constructor Without Delegate
EDITORNET-2819BugException is thrown when saving edited HTML document with background color applied to text

New Features and Improvements

New Feature: Manage Forms with New API

We have introduced a new public API for managing form fields within documents. This feature provides enhanced capabilities for interacting with various form field types programmatically.

New public type for managing forms:

  • FormFieldManager: Manages forms with legacy form fields, which were available in earlier versions of word processing software.

New public namespace:

  • com.groupdocs.editor.words.fieldmanagement: Contains classes and interfaces related to the management and manipulation of form fields within documents. This namespace allows users to work with different types of form fields, such as text fields, checkboxes, dropdowns, etc.

New public types of form fields:

New public type for form field collections:

New Editor Constructors

To provide more flexibility and ease of use, new constructors have been introduced for the Editor class:

  • Editor(DocumentFormatBase): Initializes a new instance of the Editor class and creates a new empty document based on the specified format.
  • Editor(InputStream): Initializes a new Editor instance with the specified input document (as a InputStream).
  • Editor(InputStream, ILoadOptions): Initializes a new Editor instance with the specified input document (as a InputStream) along with its load options.
  • Editor(String, ILoadOptions): Initializes a new Editor instance with the specified input document (as a full file path) along with its load options.

Bug Fixes

  • EDITORNET-2763: Resolved an issue with ArgumentNullException on Graphics.MeasureString.
  • EDITORNET-2790: Fixed an issue causing an exception when saving edited HTML with multiple stylesheets to a document.
  • EDITORNET-2791: Fixed an issue causing InvalidOperationException due to a DIV inside a li in WordProcessing - ShapeProcessor.
  • Exception When Saving Edited HTML Document with Background Color: Fixed an issue where an exception was thrown when saving an edited HTML document that had a background color applied to the text.

Public API and Backward Incompatible Changes

New Constructors:

  • Editor(DocumentFormatBase)

    Initializes a new instance of the Editor class and creates a new empty document based on the specified format.

  • Editor(InputStream)

    Initializes a new Editor instance with the specified input document (as a InputStream).

  • Editor(InputStream, ILoadOptions)

    Initializes a new Editor instance with the specified input document (as a InputStream) along with its load options.

  • Editor(String, ILoadOptions)

    Initializes a new Editor instance with the specified input document (as a full file path) along with its load options.

Create New Document Without Callback Function

We have introduced new functionality to allow the creation of new documents without the need for a callback function. This feature provides enhanced capabilities for interacting with various form field types programmatically.

New public members:

Code Samples

1. WordProcessing Document:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Create a new WordProcessing document and save it using a callback Action<InputStream>.
Editor editor = new Editor(WordProcessingFormats.Docx);
{
    // Save new document.
    editor.save(outputStream);
}

2. Spreadsheet Document:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Create a new Spreadsheet document and save it.
Editor editor = new Editor(SpreadsheetFormats.Xlsx);
{
    // Save new document.
    editor.save(outputStream);
}

3. Presentation Document:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Create a new Presentation document and save it.
Editor editor = new Editor(PresentationFormats.Pptx);
{
    // Save new document.
    editor.save(outputStream);
}

4. Ebook Document:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Create a new Ebook document and save it.
Editor editor = new Editor(EBookFormats.Epub);
{
    // Save new document.
    editor.save(outputStream);
}

4. Email Document:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

// Create a new Email document and save it.
Editor editor = new Editor(EmailFormats.Eml);
{
    // Save new document.
    editor.save(outputStream);
}

Abolition of some nested classes

We have introduced several new classes instead of nested ones to improve the code structure and reduce the complexity of dependencies. Thus, we have abandoned such nested classes as ArgbColor.KnownColors.CssLevel1, ArgbColor.KnownColors.CssLevel2, ArgbColor.KnownColors.CssLevel3, ArgbColor.KnownColors.CssLevel4 and Length.Unit, now you can use the following ArgbColors and LengthUnit .

We appreciate your continued support and feedback. Please feel free to reach out to our support team if you have any questions or encounter any issues.

Thank you for choosing GroupDocs.Editor for Java!

Link to Documentation