Browse our Products

Aspose.Words for .NET 25.6 Release Notes

Major Features

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

  • Multi-Page Export: Added multi-page export to raster image formats (PNG/JPG/etc.) with customizable layouts (Horizontal/Vertical/Grid).
  • MathML Connectors: Added rendering for connector lines in MathML, ensuring more accurate formula visualization.
  • Math Formula Wrapping: Improved rendering to correctly wrap formulas with multiple slashes, enhancing layout clarity.
  • Waterfall Chart Legends: Added legend rendering for “Waterfall” charts, improving data understanding and chart completeness.

Full List of Issues Covering all Changes in this Release

Expand to view the full list of issues.
KeySummaryCategory
WORDSNET-28060Add feature to render multiple pages on one imageNew Feature
WORDSNET-15451Docx to PDF conversion issue with table’s widthNew Feature
WORDSNET-28116Rendering of Waterfall LegendNew Feature
WORDSNET-28114Rendering of connector lines of Waterfall chartExNew Feature
WORDSNET-28143Consider providing an ability to set different revision bar colors for different types of revisionsEnhancement
WORDSNET-20814Wrong table cell width when converting from Word to PDFEnhancement
WORDSNET-20667Document.UpdateTableLayout changes the layout of table in output PDFEnhancement
WORDSNET-14578Table Header is not repeated on second page (in PDF)Enhancement
WORDSNET-28199Update SkiaSharp to the latest version (3.119.0)Enhancement
WORDSNET-28038DOC to MD: Option to skip imagesEnhancement
WORDSNET-7459Tables nested in text boxes are not visible in PDF outputBug
WORDSNET-21206Incorrect calculation of table width with relative sizeBug
WORDSNET-21990Image is not visible in generated documentsBug
WORDSNET-22910DOCX to PDF conversion issue footer text (page) renderingBug
WORDSNET-24323Contents are missing upon renderingBug
WORDSNET-27278Table width in textbox is changed after renderingBug
WORDSNET-27629Table width in text box is incorrect after renderingBug
WORDSNET-27620Table with in shape is incorrect after renderingBug
WORDSNET-28303Aspose.Words cannot instantiate the built-in style “Macro Text” by nameBug
WORDSNET-28246Word count differs from Microsoft Word for paragraphs with custom numbered labelsBug
WORDSNET-28274Part of chart legend is lost after importing PDFBug
WORDSNET-27981Aspose.Words hangs upon rendering documentBug
WORDSNET-28254Shape bounds are incorrect using the InsertGroupShape methodBug
WORDSNET-21249Try to reduce count of identical Border instances allocated during importing from RTFBug
WORDSNET-28213LINQ Reporting Engine - Issue with backColor and cellMerge tagsBug
WORDSNET-28288MS Word comparison vs Aspose.Words comparisonBug
WORDSNET-28295PdfDocumentProcessorPlugin ignores tiff save optionsBug
WORDSNET-28273Content is moved to the next pages after importing PDFBug
WORDSNET-28220Bookmark ID for duplicated bookmark is duplicated after open/saveBug
WORDSNET-26496Table layout does not match MS Word on conversion to PDFBug
WORDSNET-28228Field created by Aspose.Words has invalid field codeBug
WORDSNET-28260Exception is occurred in Document.Watermark.Type propertyBug
WORDSNET-28186Allow to specify aliases for the “Normal” style via “mso-style-name” in MsoHtmlBug
WORDSNET-27599NullReferenceException during conversion to HTMLBug
WORDSNET-28210Text that overflows table cell is rendered improperlyBug
WORDSNET-28239Footnotes are lost after rendering the documentBug
WORDSNET-28256Incorrect font parameters when rendering vertical textBug
WORDSNET-28195ODT to HTML: Duplicated mathematical formulas in outputBug
WORDSNET-28048NullReferenceException occurs in ClearHeadersFooters method when run in multiple threadsBug
WORDSNET-27247NullReferenceException is thrown upon rendering documentBug
WORDSNET-28243Splitting and rejoining document with floating table produced incorrect result in DOCXBug
WORDSNET-14258OfficeMath does not render correctly in output PDFBug
WORDSNET-28100Number of revision returned by Aspose.Words does not match MS WordBug
WORDSNET-27977Document signature is invalid if use Aspose.Words in evaluation modeBug
WORDSNET-28125PAC crashes when try to inspect list structure in PDF produced by Aspose.WordsBug
WORDSNET-26705Warnings are shown when build .NET Standard 2.0 project with AutoGenerateBindingRedirects option enabledBug
WORDSNET-26262Incorrect nested table position inside text boxBug
WORDSNET-28162Subscript vertical position does not match MS WordBug
WORDSNET-28183Bracket size in MathML is imported improperlyBug
WORDSNET-28212Inserting MathML raises ArgumentExceptionBug
WORDSNET-27817Document comparison shows unchanged formattingBug
WORDSNET-27465DOCX to EPUB: Image not rendered correctly in the outputBug
WORDSNET-27980Some characters are imported from HTML improperlyBug
WORDSNET-28075Compare result does not match MS Word outputBug
WORDSNET-28187Table width in the header is incorrect after changing page orientationBug
WORDSNET-27772Missing background images when converting from MHTML to DOCXBug
WORDSNET-28201Track changes colors not preserved in PDF outputBug
WORDSNET-28304ArgumentException is thrown upon inserting imageBug
WORDSNET-28068Last page is truncated when converting DOCX to fixed-HTML in by-page modeBug
WORDSNET-28217DOCX to PDF: DllNotFoundException for libSkiaSharp on .NET Core 3.1 in Linux Docker environmentBug

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 25.6. 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 multi-page export to raster image formats (PNG/JPG/etc.) with customizable layouts (Horizontal/Vertical/Grid).

Related issue: WORDSNET-28060

Introduced new public property in Aspose.Words.Saving.ImageSaveOptions class:

/// <summary>
/// Gets or sets the layout used when rendering multiple pages into a single output.
/// </summary>
/// <remarks>
/// <para>
/// Use one of the factory methods of <see cref="Saving.MultiPageLayout"/> to configure this property.
/// </para>
/// <para>
/// For <see cref="SaveFormat.Tiff"/> the default value is <see cref="MultiPageLayout.TiffFrames"/>.
/// For other formats the default value is <see cref="MultiPageLayout.SinglePage"/>.
/// </para>
/// <para>
/// This property has effect only when saving to the following formats:
/// <see cref="SaveFormat.Jpeg"/>, <see cref="SaveFormat.Gif"/>, <see cref="SaveFormat.Png"/>,
/// <see cref="SaveFormat.Bmp"/>, <see cref="SaveFormat.Tiff"/>, <see cref="SaveFormat.WebP"/>
/// </para>
/// </remarks>
public MultiPageLayout PageLayout { get; set; }

and added a new factory class to create the muli-page layout configurations in Aspose.Words.Saving namespace:

/// <summary>
/// Defines a layout for rendering multiple pages into a single output.
/// </summary>
/// <remarks>
/// Use one of the static factory methods to create a layout configuration.
/// </remarks>
public sealed class MultiPageLayout
{
/// <summary>
/// Creates a layout where all specified pages are rendered vertically one below the other in a single output.
/// </summary>
/// <param name="verticalGap">The vertical gap between pages in points.</param>
public static MultiPageLayout Vertical(float verticalGap);

/// <summary>
/// Creates a layout in which all specified pages are rendered horizontally side by side,
/// left to right, in a single output.
/// </summary>
/// <param name="horizontalGap">The horizontal gap between pages in points.</param>
public static MultiPageLayout Horizontal(float horizontalGap);

/// <summary>
/// Creates a layout in which pages are rendered left-to-right, top-to-bottom, in a grid with the
/// specified number of columns.
/// </summary>
/// <param name="columns">The number of columns in the layout. Must be greater than zero.</param>
/// <param name="horizontalGap">The horizontal gap between columns in points.</param>
/// <param name="verticalGap">The vertical gap between rows in points.</param>
/// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="columns"/> is less than or equal to zero.</exception>
public static MultiPageLayout Grid(int columns, float horizontalGap, float verticalGap);

/// <summary>
/// Creates a layout where each page is rendered as a separate frame in a multi-frame TIFF image.
/// Applicable only to TIFF image formats.
/// </summary>
public static MultiPageLayout TiffFrames()

/// <summary>
/// Creates a layout that renders only the first of specified pages.
/// </summary>
public static MultiPageLayout SinglePage()

/// <summary>
/// Gets or sets the background color of the output.
/// The default is <see cref="Color.Empty"/>.
/// </summary>
public Color BackColor { get; set; }

/// <summary>
/// Gets or sets the color of the pages border.
/// The default is <see cref="Color.Empty"/>.
/// </summary>
public Color BorderColor { get; set }

/// <summary>
/// Gets or sets the width of the pages border.
/// The default is 0.
/// </summary>
public float BorderWidth { get; set; }
}

This use case explains how to save a 5-page document into JPG image with multi-page layout settings: