GroupDocs.Editor for Java 23.9 Release Notes

GroupDocs.Editor for Java version 23.9 is a new significant update that contains several new features, plenty of useful improvements and a lot of bugfixes in different modules of the GroupDocs.Editor, primarily in HTML/CSS sub-system, e-Book module, and WordProcessing module.

Ability to generate a preview of selected worksheet of a loaded spreadsheet in SVG format

Starting from the version 23.9 the GroupDocs.Editor for Java is able to generate an SVG preview of arbitrary worksheet within spreadsheet. In order to do this need to load a desired spreadsheet document inside the Editor class, invoke the getDocumentInfo method, and then in the obtained com.groupdocs.editor.metadata.SpreadsheetDocumentInfo struct call the generatePreview(int worksheetIndex) method.

A separate article “Generating worksheets (tabs) preview for spreadsheet” explains this new feature in detail.

New e-Book save options

In previous versions there were two different classes for save options for the e-Book formats family: EpubSaveOptions and Azw3SaveOptions. In version 23.9 these classes are deleted and replaced with single common EbookSaveOptions class. Article “How to edit e-Book file” explains this change in detail.

Support of export into Mobi format

Before the version 23.9 was released, the Mobi format was supported only on import, so it was possible to load and edit a Mobi document, but not to save the edited document in Mobi format. Starting from the version 23.9 this is possible. Article “How to edit Mobi file “ explains this in detail.

Greatly improved HTML parser

In the version 23.9 the HTML parser was significantly improved. Now it is able to correctly process invalid, incorrect and distorted markup. In particular, the next distortions are supported:

  • Flow elements nested inside phrasing elements, for example, P inside P or DIV inside SPAN.
  • Prohibited elements and nodes inside TABLE element, for example, prohibited P inside TABLE or DIV inside TR will be pushed upward.
  • SELECT is generated and applied as a parent for the orphan OPTION/OPTGROUP elements, because OPTION/OPTGROUP must be direct children of the SELECT.
  • COLGROUP is generated and applied as a parent for the COL.
  • Incorrectly nested lists are properly processed.
  • Better parsing of HTML attributes
  • And many more

New method for obtaining an HTML markup

Now the EditableDocument class contains a new public method EditableDocument.getContent(), which allows to obtains the HTML markup of the opened document and write it to the specified stream with specified text encoding.

Ability to generate a preview of selected page of a loaded WordProcessing document in SVG format

Starting from the version 23.9 the GroupDocs.Editor for Java is able to generate an SVG preview of arbitrary page within a WordProcessing document, like DOC, DOCX, RTF, or ODT. In order to do this need to load a desired WordProcessing document inside the Editor class, invoke the getDocumentInfo method, and then in the obtained com.groupdocs.editor.metadata.WordProcessingDocumentInfo struct call the generatePreview(int pageIndex) method.

A separate article “Generating page preview for WordProcessing documents” explains this new feature in detail.

Different optimizations

Version 23.9 is mostly focused on different optimizations in memory consumption and performance. In particular, now generated EditableDocument contains only unique images - all duplicates are removed upon its preparation. Also, once the loaded document was processed, it is stored in the internal global cache and will not be reopened during the instance of the Editor class exists. Only when Editor.dispose() method is invoked, all cached data is cleared. However, this optimization imposes a higher responsibility to the end-user — if the Editor.dispose() method will not be called, the files and resources will stay locked.

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
EDITORNET-2423Add ability to generate a worksheet (tab) preview for the Spreadsheet moduleNew feature
EDITORNET-2475Implement Mobi export supportNew feature
EDITORNET-2480Intoduce new universal eBook save optionsNew feature
EDITORNET-2468Add full support of text-decoration-thicknessImprovement
EDITORNET-2476Improve and fix text decorations in forward WordProcessing converterImprovement
EDITORNET-2478Develop new parser for all text-decoration propertiesImprovement
EDITORNET-2482Improve parsing of HTML attributes to properly process invalid quote chars in style attribute valueImprovement
EDITORNET-2483Improve parsing of font-family property in CSS to correctly process invalid CSS markupImprovement
EDITORNET-2486Develop new public method for obtaining HTML markup in streamImprovement
EDITORNET-2489Enhance HTML parser to properly cope with invalid nesting in HTML elementsImprovement
EDITORNET-2491Implement a valid parsing of incorrectly nested listsImprovement
EDITORNET-2494Implement new parser for invalid OPTION/OPTGROUP elementsImprovement
EDITORNET-2479Fix Word-to-HTML converter, which generates invalid HTML markupBug
EDITORNET-2485GroupDocs.Editor memory leak while converting WordProcessing documentBug
EDITORNET-2490Fix bug with skipped HTML markup during parsingBug
EDITORNET-2492Fix bug with incorrect child HTML element getter in the new HTML DOMBug
EDITORNET-2495Fix issue with collapsed anchorsBug
EDITORNET-2521Generate page preview of WordProcessing doc in SVGNew feature
EDITORNET-2493Investigate and fix memory leakageImprovement
EDITORNET-2523Develop global document cacheImprovement
EDITORNET-2528Implement redundant image optimizerImprovement
EDITORNET-2520Fix bug in new GetContent methodBug
EDITORNET-2527Fix issue with duplicate image filenames in WordProcessing forward converterBug
EDITORNET-2529Fix preparing of different resources in EditableDocumentBug
EDITORNET-2531Fix bug with reading beyond the end of streamBug

Public API and Backward Incompatible Changes

New public types:

New public members:

Removed types:

  • GroupDocs.Editor.Options.EpubSaveOptions
  • GroupDocs.Editor.Options.Azw3SaveOptions

New public members: