Browse our Products

Aspose.Words for .NET 25.11 Release Notes

Major Features

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

  • AI Model Integration: Enhanced the API to allow configuration of AI model service endpoints, including setting custom URLs and request timeouts for greater flexibility in integration.
  • Markdown Export: Improved document conversion fidelity by enabling the export of OfficeMath objects into LaTeX format, ensuring compatibility with MarkItDown renderers.
  • Advanced Print Control: Introduced a new callback interface (IWarningCallback style) to enable programmatic control over page skipping during print operations.
  • Advanced Print Control: Exposed a new public property to accurately retrieve the actual number of pages rendered by a print job.
  • Advanced Print Control: Provided the ability to specify distinct target printers for color and monochrome (black & white) page output within a single print job.

Full List of Issues Covering all Changes in this Release

Expand to view the full list of issues.
KeySummaryCategory
WORDSNET-28707Implement native rendering of PDF radial gradientsNew Feature
WORDSNET-24708Consider providing a way to specify different printers to be used for colored and black&white pagesNew Feature
WORDSNET-28757Add public property to get the actual number of printed pagesNew Feature
WORDSNET-28736Implement a callback interface to control page skipping when printingNew Feature
WORDSNET-24873Support MSO properties during import footnotes and endnotesNew Feature
WORDSNET-24676Improve rendering of gradient brushesEnhancement
WORDSNET-28771Border-radius in HTML tables not preserved upon converting to PDFBug
WORDSNET-24764Consider updating github demo code to .NET 6Bug
WORDSNET-15765Incorrect shapes layout in the document after renderingBug
WORDSNET-28667HTML document is loaded as TXTBug
WORDSNET-28115Blurred math formula image on LinuxBug
WORDSNET-28745MHTML to PDF conversion produces invalid characters on LinuxBug
WORDSNET-23737Negative cell preferred does not match MS Word on loading an RTF documentBug
WORDSNET-28735Add ability to change default URL of the AI modelsBug
WORDSNET-28774DOCX to PDF - Footer alignment issueBug
WORDSNET-28776Pdf2Word, image is duplicated on all pagesBug
WORDSNET-27565Aspose.Words hangs upon rendering documentBug
WORDSNET-28722Hangs upon rendering document using Aspose.WordsBug
WORDSNET-28763DOC to PDF: Tables are misaligned in the outputBug
WORDSNET-28701DOCM to PDF: Footer table is missingBug
WORDSNET-28791Pdf2Word. Memory leak during table detectionBug
WORDSNET-28641Some characters are missed upon rendering document to HtmlFixedBug
WORDSNET-28766Latex output is unreadable in popular Markdown viewersBug
WORDSNET-28726Add option to control timeout when requesting AI modelBug
WORDSNET-28706Document.RemoveBlankPages() doesn’t remove the last blank pageBug
WORDSNET-28614Xmpeg file is detected as Markdown by FileFormatUtilBug
WORDSNET-27131Lists brokes after converting PDF to DOCXBug
WORDSNET-28700DOCX to PDF: Content controls appear in grey font colorBug
WORDSNET-28702PAC reports “Possibly inappropriate use of a ?Note? structure element”Bug
WORDSNET-27176Lines move up after converting PDF to WORDBug
WORDSNET-28646Reword warning message that occurs when JPEG is saved to HtmlFixedBug
WORDSNET-27528RTF to DOCX conversion issueBug
WORDSNET-28769Changing TextBox.TextBoxWrapMode in model is not detected by document comaparerBug
WORDSNET-28725InvalidOperationException when calling UpdatePageLayout() after updating CustomXmlPart and changing namespace URIBug
WORDSNET-28711Style of cell’s borders isn’t preserved after DOCX->HTML->DOCX round-tripBug
WORDSNET-28752Mobi to Epub conversion fixBug
WORDSNET-28748Image isn’t displayed in md file after docx to md conversionBug
WORDSNET-28613Import of MsoHtml lists differs from MS Word’s resultBug
WORDSNET-28657Missed shape text upon conversion to PDFBug
WORDSNET-28717Cells’ borders aren’t preserved after DOCX->HTML->DOCX round-tripBug
WORDSNET-28188The document round trip causes losing bordersBug
WORDSNET-28746Import of MsoHtml lists differs from MS Word’s resultBug
WORDSNET-28730MsoHtml lists differs from MS Word’s resultBug
WORDSNET-28729MsoHtml lists import differs from MS Word’s resultBug
WORDSNET-28442Lists in MsoHtml differs from the one from MS Word’s outputBug
WORDSNET-28758Missed Subtype for header/footer in the PDF/UA-1Bug
WORDSNET-28101Number of revision returned by Aspose.Words does not match MS WordBug
WORDSNET-28747Parent SDT is missing from output fileBug
WORDSNET-28738The “Revision” style is imported incorrectly from MsoHtmlBug
WORDSNET-28653EQ field is rendered improperlyBug
WORDSNET-28618Observe EQ field is rendered improperly with Aspose.WordsBug
WORDSNET-27870Spacing issue in RTF to PDF conversionBug
WORDSNET-28110Aspose.Words hangs upon loading TXT documentBug
WORDSNET-28178Arabic text converts to mix of Korean and Chinese charsBug
WORDSNET-28724InvalidOperationException when saving DOCX after updating CustomXmlPartBug
WORDSNET-28091Number of revision returned by Aspose.Words does not match MS WordBug
WORDSNET-28555Formatting multi-level list issueBug
WORDSNET-28232Incorrect formatting of built-in styles after loading MsoHtmlBug
WORDSNET-28441Import of MsoHtml lists differs from MS Word’s resultBug
WORDSNET-28710FileCorruptedException is thrown upon loading WordML document.Bug
WORDSNET-28669Spaces are rendered incorrect in math formulas after converting to PDFBug
WORDSNET-26086Axis labels are rendered improperly and overlap each otherBug
WORDSNET-28631InvalidOperationException is thrown upon appending documentBug
WORDSNET-28779Extra page appears during DOCX to PDF conversionBug
WORDSNET-28713InsertHtml() renders placeholder text when replacing SDT content in DesignModeBug
WORDSNET-28715Acrobat Pro reports “The PDF you are currently viewing does not identify itself as compliant with any standard.” for PDF saved as PdfA4fBug
WORDSNET-27697Aspose.Words consumes a lot of CPU and memory when loading a PDF documentBug
WORDSNET-18926Content of cell is not rendered correctlyBug
WORDSNET-23129Missed text in tables in specific fileBug
WORDSNET-23033System.ArgumentException at PdfXRefTable.AddXRefSectionBug
WORDSNET-23097Distorted PDFs produces word files with first page on all pagesBug
WORDSNET-16924AW push floating table to next page if it cross footerBug

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 25.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 ability to change default URL of the AI models

Related issue: WORDSNET-28735

A new public option has been added into Aspose.Words.AI.AiModel class:

/// <summary>
/// Gets or sets a URL of the model.
/// The default value is specific for the model.
/// </summary>
public abstract string Url { get; set; }

This use case explains how to change the default URL for AI model:

Added option to control timeout when requesting AI model

Related issue: WORDSNET-28726

A new public option has been added into Aspose.Words.AI.AiModel class:

/// <summary>
/// Gets or sets the number of milliseconds to wait before the request to AI model times out.
/// The default value is 100,000 milliseconds (100 seconds).
/// </summary>
public int Timeout { get; set; }

This use case explains how to change the default timeout for AI model:

Added ability to export OfficeMath into Markdown as LaTeX that is compatible with MarkItDown

Related issue: WORDSNET-28766

A new value has been added into Aspose.Words.Saving.MarkdownOfficeMathExportMode enumeration:

/// <summary>
/// Export OfficeMath as LaTeX that is compatible with MarkItDown.
/// </summary>
/// <remarks>Please see https://github.com/microsoft/markitdown for details on MarkItDown.</remarks>
MarkItDown = 4

This use case explains how to export OfficeMath into Markdown as LaTeX that is compatible with MarkItDown:

Added a callback interface to control page skipping when printing

Related issue: WORDSNET-28736

Introduced a new public property in Aspose.Words.Rendering.AsposeWordsPrintDocument class:

/// <summary>
/// Gets or sets the zero-based index filter used to determine which pages to skip during printing.
/// </summary>
/// <remarks>
/// Please note that if some pages are skipped, the actual total number of pages to print
/// will not be known until the printing process is complete.
/// This may impact print process tracking if the initial expected number of pages is greater
/// than the number actually printed.
/// </remarks>
public IIndexFilter PageIndexFilter { get; set; }

and a new public interface in Aspose.Words namespace:

/// <summary>
/// Defines a filter for skipping items based on their indices.
/// </summary>
public interface IIndexFilter
{
    /// <summary>
    /// Determines whether the item with the specified index should be skipped.
    /// </summary>
    /// <param name="index">The index of the item.</param>
    /// <returns><c>true</c> if the item should be skipped; otherwise, <c>false</c>.</returns>
    bool ShouldSkipIndex(int index);
}

AsposeWordsPrintDocument uses the standard .NET print manager through the PrinterSettings class, which only allows specifying a continuous page range for printing. However, there are scenarios where you need to skip specific pages based on their characteristics. This approach was developed to address such requirements.

The example below demonstrates simple filtering using a page number list, but in real-world applications, you can implement more specific filtering criteria - such as page size, orientation, or other page properties.

This use case shows sample filter implementation and usage:

Added public property to get the actual number of printed pages

Related issue: WORDSNET-28757

Introduced a new public property in [AsposeWordsPrintDocument](https://reference.aspose.com/words/net/aspose.words.rendering/asposewordsprintdocument/asposewordsprintdocument/ class:

/// <summary>
/// Gets the total number of pages actually printed during the print session.
/// </summary>
/// <remarks>
/// Updated after printing completes. Returns 0 before printing starts.
/// </remarks>
public int TotalPagesPrinted { get; }

This addresses scenarios where pages may be skipped during printing.

This use case shows printing with page filter:

Provided the ability to specify different printers to be used for color and black&white pages

Related issue: WORDSNET-24708

It is now possible to print color and black and white pages of a single document separately on different printers. This may be accomplished using a custom page index filter.

An example of printing color and black-and-white pages separately on different printers: