Browse our Products

Aspose.Words for .NET 23.12 Release Notes

Major Features

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

  • Added an ability to specify the page layout to be used when the document is opened in a PDF reader.
  • Implemented the way to control how ZIP64 format extensions will be used for OOXML documents.
  • Introduced support for WebP images. Please note, this feature is available for .NetStandart and .NET6+ versions only.
  • Added the dollarText number format for LINQ Reporting Engine.

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.12. 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 a public property and enumeration to set the initial view page layout that will be used when opening a document in a PDF reader

Related issue: WORDSNET-26175

New public PageLayout property has been added to the PdfSaveOptions class:

public class PdfSaveOptions
{
    ...

    /// <summary>
    /// Specifies the page layout to be used when the document is opened in a PDF reader.
    /// </summary>
    /// <remarks>
    /// The default value is PdfPageLayout.SinglePage/>.
    /// </remarks>
    public PdfPageLayout PageLayout { get; set; }
}

New public PdfPageLayout enumeration has been introduced:

/// <summary>
/// Specifies the page layout to be used when the document is opened in a PDF reader.
/// </summary>
public enum PdfPageLayout
{
    /// <summary>
    /// Display one page at a time.
    /// </summary>
    SinglePage,

    /// <summary>
    /// Display the pages in one column.
    /// </summary>
    OneColumn,

    /// <summary>
    /// Display the pages in two columns, with odd-numbered pages on the left.
    /// </summary>
    TwoColumnLeft,

    /// <summary>
    /// Display the pages in two columns, with odd-numbered pages on the right.
    /// </summary>
    TwoColumnRight,

    /// <summary>
    /// Display the pages two at a time, with odd-numbered pages on the left.
    /// </summary>
    TwoPageLeft,

    /// <summary>
    /// Display the pages two at a time, with odd-numbered pages on the right.
    /// </summary>
    TwoPageRight
}

Added LowCode.Merger.Merge method overload with array of Document objects as an input

Related issue: WORDSNET-25994

A new public method Merge(Document[], MergeFormatMode) has been added to class LowCode.Merger:

/// <summary>
/// Merges the given input documents into a single document and returns <see cref="Document"/> instance of the final document.
/// </summary>
/// <param name="inputDocuments">The input documents.</param>
/// <param name="mergeFormatMode">Specifies how to merge formatting that clashes.</param>
public static Document Merge(Document[] inputDocuments, MergeFormatMode mergeFormatMode)

Added public property OoxmlSaveOptions.Zip64Mode and enum type Zip64Mode

Related issue: WORDSNET-25940

New public Zip64Mode property has been added to the OoxmlSaveOptions class:

public class OoxmlSaveOptions
{
    ...
    
    /// <summary>
    /// Specifies whether or not to use ZIP64 format extensions for the output document.
    /// The default value is <see cref="Saving.Zip64Mode.Never"/>.
    /// </summary>
    /// <seealso cref="Zip64Mode"/>
    public Zip64Mode Zip64Mode { get; set; }
}

New public Zip64Mode enumeration has been introduced:

/// <summary>
/// Specifies when to use ZIP64 format extensions for OOXML files.
/// </summary>
/// <remarks>
/// OOXML file is a ZIP-archive that has a 4 GB (2^32 bytes) limit on uncompressed size of a file,
/// compressed size of a file, and total size of the archive, as well as a limit of 65,535 (2^16-1) files in archive.
/// ZIP64 format extensions increase the limits to 2^64.
/// </remarks>
/// <seealso cref="OoxmlSaveOptions.Zip64Mode"/>
public enum Zip64Mode
{
    /// <summary>
    /// Do not use ZIP64 format extensions.
    /// </summary>
    Never = 0,

    /// <summary>
    /// If necessary use ZIP64 format extensions.
    /// </summary>
    IfNecessary = 1,

    /// <summary>
    /// Always use ZIP64 format extensions.
    /// </summary>
    Always = 2
}

Introduced support for WebP images. Please note, this feature is available for .NetStandart and .NET6+ versions only.

Related task: WORDSNET-21107

Added support for reading WebP image format to the .NetStandard and .NET6+ builds. Added the ability to both read WebP images from documents and insert them via DocumentBuilder.

Added the dollarText number format for LINQ Reporting Engine

Related issue: WORDSNET-25947

Starting from Aspose.Words 23.12, you can use the dollarText number format while outputting expression results.

Slight changes in IStructuredDocumentTag public interface

Related issue: WORDSNET-26241

The new public methods RemoveSelfOnly and GetChildNodes have been added to IStructuredDocumentTag interface:

/// <summary>
/// Removes just this SDT node itself, but keeps the content of it inside the document tree.
/// </summary>
void RemoveSelfOnly();

/// <summary>
/// Returns a live collection of child nodes that match the specified types.
/// </summary>
NodeCollection GetChildNodes(NodeType nodeType, bool isDeep);

IsRanged and StructuredDocumentTagNode methods have been converted to IsMultiSection and Node properties.

/// <summary>
/// Returns true if this instance is a ranged (multi-section) structured document tag.
/// </summary>
bool IsMultiSection { get; }

/// <summary>
/// Returns Node object that implements this interface.
/// </summary>
Node Node { get; }