Browse our Products

Aspose.Words for .NET 23.11 Release Notes

Major Features

There are 69 improvements and fixes in this regular monthly release. The most notable are:

  • Implemented the way to control when certain revision should be accepted/rejected or not by the RevisionCollection.Accept, RevisionCollection.Reject methods.
  • Added an ability to specify the default font formatting for legend entries of DrawingML charts.
  • Provided an ability to write all sections of the document to the same XLSX worksheet.

Full List of Issues Covering all Changes in this Release

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 23.11. It includes not only new and obsoleted public methods, but also a description of any changes in the behavior behind the scenes in Aspose.Words which may affect existing code. Any behavior introduced that could be seen as regression and modifies the existing behavior is especially important and is documented here.

Added public methods RevisionCollection.Accept and RevisionCollection.Reject and interface IRevisionCriteria

Related issue: WORDSNET-23930

New public Accept and Reject methods have been added to the RevisionCollection class:

/// <summary>
/// Accepts revisions that match specified criteria.
/// </summary>
/// <param name="criteria">
/// The <see cref="IRevisionCriteria"/> implementation.
/// </param>
/// <returns>
/// The count of accepted revisions.
/// </returns>
public int Accept(IRevisionCriteria criteria);

/// <summary>
/// Rejects revisions that match specified criteria.
/// </summary>
/// <param name="criteria">
/// The <see cref="IRevisionCriteria"/> implementation.
/// </param>
/// <returns>
/// The count of rejected revisions.
/// </returns>
public int Reject(IRevisionCriteria criteria);

New public IRevisionCriteria interface has been introduced:

/// <summary>
/// Implement this interface if you want to control when certain <see cref="Revision"/> should be accepted/rejected
/// or not by the <see cref="RevisionCollection.Accept"/>/<see cref="RevisionCollection.Reject"/> methods.
/// </summary>
public interface IRevisionCriteria
{
    /// <summary>
    /// Checks whether or not specified <paramref name="revision"/> matches criteria.
    /// </summary>
    /// <param name="revision">The <see cref="Revision"/> instance to match criteria.</param>
    /// <returns><c>True</c> if the <paramref name="revision"/> matches criteria, otherwise <c>False</c>.</returns>
    /// <remarks>
    /// The method implementation should not accept/reject the revision or modify it in any way due to unexpected results.
    /// </remarks>
    bool IsMatch(Revision revision);
}

Added public property ChartLegend.Font

Related issue: WORDSNET-23605

The new property ChartLegend.Font has been implemented. It allows setting the default font formatting for legend entries.

public class ChartLegend
{
    /// <summary>
    /// Provides access to the default font formatting of legend entries. To override the font formatting for
    /// a specific legend entry, use the<see cref="ChartLegendEntry.Font"/> property.
    /// </summary>
    public Font Font { get; }

    ...
}

Added public property XlsxSaveOptions.SectionMode and enum type XlsxSectionMode

Related issue: WORDSNET-25636

A new enumeration type XlsxSectionMode and a new property XlsxSaveOptions.SectionMode of this type have been implemented.

/// <summary>
/// Specifies how sections are handled when saving a document in the XLSX format.
/// </summary>
public enum XlsxSectionMode
{
    /// <summary>
    /// Specifies that a separate worksheet is created for each section of a document.
    /// </summary>
    MultipleWorksheets,

    /// <summary>
    /// Specifies that all sections of a document are saved on one worksheet.
    /// </summary>
    SingleWorksheet
}

public class XlsxSaveOptions
{
    ...

    /// <summary>
    /// Gets or sets the way how sections are handled when saving to the output XLSX document.
    /// The default value is <see cref="XlsxSectionMode.MultipleWorksheets"/>.
    /// </summary>
    public XlsxSectionMode SectionMode { get; set; }
}

Added public WordOpenXMLMinimal for StructuredDocumentTagRangeStart node

Related issue: WORDSNET-25558

New public property has been added to StructuredDocumentTagRangeStart node:

/// <summary>
/// Gets a string that represents the XML contained within the node in the <see cref="SaveFormat.FlatOpc"/> format.
///
/// Unlike the <see cref="WordOpenXML"/> property, this method generates a stripped-down document that excludes any non-content-related parts.
/// </summary>
public string WordOpenXMLMinimal { get; }

Added the ReportBuildOptions.UpdateFieldsSyntaxAware enum member

Related issue: WORDSNET-25823

The following member has been added to the ReportBuildOptions enum:

/// <summary>
/// Specifies that the engine should ignore template syntax in field results and update fields after a report
/// is built.
/// </summary>
UpdateFieldsSyntaxAware

The obsolete property HtmlSaveOptions.EpubNavigationMapLevel was removed

Related issue: WORDSNET-25683

The obsolete HtmlSaveOptions.EpubNavigationMapLevel property was removed. The HtmlSaveOptions.NavigationMapLevel should be used instead.