Browse our Products

Aspose.Words for C++ 21.9 Release Notes

Major Features

We have added the following features from Aspose.Words for .NET on this regular monthly release:

  • Added an ability to get CustomNumberStyleFormat of ListLevel.
  • Make it possible to get the string representation of the ListLevel object for the specified index.
  • Implemented export of triangular gradients into PDF in native (vector) form.
  • Implemented logical structure for comments rendering to PDF.

Limitations and API Differences

Aspose.Words for C++ has some differences as compared to its equivalent .NET version of the API. This section contains information about all such functionality that is not available in the current release. The missing features will be added in future releases.

  • The current release does not support Metered license.
  • The current release does not support LINQ and Reporting features.
  • The current release does not support OpenGL 3D Shapes rendering.
  • The current release does not support loading PDF documents.
  • The current release has limited support for database features - C++ doesn’t have common API for DB like .NET System.Data.
  • The current release supports Microsoft Visual C++ version 2017 or higher.
  • The current release supports GCC 6.3 or higher and Clang 3.9.1 or higher on Linux and only for the x86_x64 platform.
  • The current release supports macOS Big Sur or later (11.5+) for 64-bit Intel Mac platform.

Full List of Issues Covering all Changes in this Release (Reported by .NET Users)

WORDSNET-17101Optimize the PDF output size for document with multiple gradient filled shapesNew Feature
WORDSNET-22603Add the ability to apply 3D effects to the imageNew Feature
WORDSNET-21742Add feature to export language in Tag tab of object properties (ExportDocumentStructure)New Feature
WORDSNET-17842Set Language in PDF Tag PropertiesNew Feature
WORDSNET-18006Widow/orphan rule not respected in the PDF outputNew Feature
WORDSNET-15320Document’s comment is lost after comparing documentsBug
WORDSNET-22614The indentation of the equation changed after converting a Docx to PDFBug
WORDSNET-22632Find and Replace does not work with delete revisionsBug
WORDSNET-22558Missed numbering revision when compare paragraphs with equal nsids in list definitionsBug
WORDSNET-22463Performance issue with XML to PDF ConversionBug
WORDSNET-22572Shapes (Images) are lost after RTF to HTML conversionBug
WORDSNET-18623Incorrect keep with next rule handling for a tall table row on converting to pdfBug
WORDSNET-22566Image is lost when document is saved to DOCX with Iso29500_2008_StrictBug
WORDSNET-22574Bullet symbol is lost after Inserting HTML to DOCXBug
WORDSNET-22542A Table moves to previous Page during DOCX to PDF conversionBug
WORDSNET-22516Text/row moved to the previous page in converted PDFBug
WORDSNET-22466Insert Image Exif orientation ignoredBug
WORDSNET-22613Empty page returns when split document on pages using ExtractPagesBug
WORDSNET-13652InsertDocument splits one content control into multiple when document have section breakBug
WORDSNET-22547VbaModuleCollection.Remove does not remove VBA module from documentBug
WORDSNET-22560VBA Code is lost after modifying source codeBug
WORDSNET-22541VbaProject  is removed after copying modules to existing VbaProjectBug
WORDSNET-22514Incorrect expression evaluation for headers and footers in multi-section data bands for LINQ Reporting EngineBug
WORDSNET-22636Odd square characters are rendered in PDFBug
WORDSNET-22601fldrslt most recent calculated result of the field is empty after DOCX to RTF ConversionBug
WORDSNET-22512Text wrapping does not take place in PDFBug
WORDSNET-22611DOCX to PDF converting and displaying certain International CharactersBug
WORDSNET-21272DataTable of chart is rendered incorrectly in output PDFBug
WORDSNET-22568Distance to the series labels is calculated incorrectlyBug
WORDSNET-22536Document.UpdatePageLayout throws System.NullReferenceExceptionBug
WORDSNET-22459NUMPAGES in Textbox is not updated after Joining documentsBug
WORDSNET-22464Frame position in the footer is wrongBug
WORDSNET-22570Fix failed performance testsBug
WORDSNET-22544Update Benchmark to use DotNetBenchmark 0.13Bug
WORDSNET-22435Default ContinuosSectionRestart Enum Value & Associated MS Word VersionsBug
WORDSNET-22551Reflection is shifted down if DmlEffectsRenderingModeCore is “Fine”Bug
WORDSNET-22399Comments graphics is not taggedBug
WORDSNET-21700NullReferenceException is thrown when call UpdatePageLayoutBug
WORDSNET-19045DOCX to PDF conversion issue with chart renderingBug
WORDSNET-18088DOC to PDF issue with chart renderingBug
WORDSNET-22668System.InvalidCastException occurs upon comparing DOC filesBug
WORDSNET-21976Document Comparison-Redlining is not accurateBug
WORDSNET-22489Document.Compare discards formatting changesBug
WORDSNET-22646Aspose.Words.FileCorruptedException is thrown while loading DOCBug
WORDSNET-21525Run.Text does not insert line break for “\r” in table cellBug
WORDSNET-22308Range.Fields.Count returns zero for Word documentBug
WORDSNET-22622Document.ExtractPages does not extract the last character of page using .NET 5.0Bug
WORDSNET-22561Table cell background color is changed in output PDFBug
WORDSNET-22634Calculation error in total number of pagesBug
WORDSNET-22151Extra Page is created after DOCX to PDF conversionBug
WORDSNET-22142Multiple fonts in equations not aligned in PDFBug
WORDSNET-17985Document.Compare generates the incorrect output for commentsBug
WORDSNET-22363LegendPosition.None does not hide the legend for Column3D chartBug

Full List of Issues Covering all Changes in this Release (Reported by Java Users)

WORDSNET-22525NumberStyle CUSTOM for LEADING_ZERO formatsNew Feature
WORDSNET-22642Wrong Replacement of Text Content if Bookmarks in Word DOCM Document are enclosing each otherBug
WORDSNET-21726Comments do not survive two consecutive callsBug
WORDSNET-22026Blank page is created after DOCX to PDF conversionBug
WORDSNET-22587Run.Font returns unexpected font familyBug
WORDSNET-22553Document comparison: incorrect revision values for content control differencesBug
WORDSNET-22478Page Number is rendered as English Number instead of Thai in output PDFBug
WORDSNET-22442System.IndexOutOfRangeException is thrown when DOC is saved to fixed file formatBug
WORDSNET-22604System.ArgumentException is thrown while re-saving DOCMBug
WORDSNET-21178Part of equation text gets subscripted and misaligned  in output PDFBug
WORDSNET-21718Incorrect processing of Comment after comparing doucmentsBug
WORDSNET-19443A diagonal line in Chart deviates from its original position when rendering to JPGBug
WORDSNET-22599FindReplaceOptions.ApplyFont does not change the font size of textBug

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 21.9. 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 new public property ListLevel.CustomNumberStyleFormat

Related issue: WORDSNET-22525

A new public property ‘CustomNumberStyleFormat’ has been added to the ‘ListLevel’ class:

/// <summary>
/// Gets the custom number style format for this list level. For example: "a, ç, ĝ, ...".
/// </summary>
public string CustomNumberStyleFormat

Use Case: Explains how to get the custom number style format for the list level.

auto doc = System::MakeObject<Document>(u"");
auto listLevel = doc->get_FirstSection()->get_Body()->get_Paragraphs()->idx_get(0)->get_ListFormat()->get_ListLevel();
System::String customNumberStyleFormat = u"";
if (listLevel->get_NumberStyle() == NumberStyle::Custom)
    customNumberStyleFormat = listLevel->get_CustomNumberStyleFormat();

Added a new public static method ListLevel.GetEffectiveValue()

Related issue: WORDSNET-22525

A new public static method ‘GetEffectiveValue()’ has been added to the ‘ListLevel’ class:

/// <summary>
/// Reports the string representation of the <see cref="ListLevel"/> object for the specified index
/// of the list item. Parameters specify the <see cref="Words.NumberStyle"/> and an optional format string
/// used when <see cref="NumberStyle.Custom"/> is specified.
/// </summary>
/// <param name="index">The index of the list item (must be in the range from 1 to 32767).</param>
/// <param name="numberStyle">
/// The <see cref="Words.NumberStyle"/> of the <see cref="ListLevel"/> object.
/// </param>
/// <param name="customNumberStyleFormat">
/// The optional format string used when <see cref="NumberStyle.Custom"/> is specified (e.g. "a, ç, ĝ, ...").
/// In other cases, this parameter must be null or empty.
/// </param>
/// <returns>
/// The string representation of the <see cref="ListLevel"/> object, described by the numberStyle parameter and
/// the customNumberStyleFormat parameter, in the list item at the position determined by the index parameter.
/// </returns>
/// <exception cref="ArgumentException">
/// customNumberStyleFormat is null or empty when the numberStyle is custom.-or-
/// customNumberStyleFormat is not null or empty when the numberStyle is non-custom.-or-
/// customNumberStyleFormat is invalid.
/// </exception>
/// <exception cref="ArgumentOutOfRangeException">index is out of range.</exception>
public static string GetEffectiveValue(int index, NumberStyle numberStyle, string customNumberStyleFormat);

Use Case: Explains how to get the string representation of the ListLevel object for the specified index of the list item.

ASSERT_EQ(ListLevel::GetEffectiveValue(4, NumberStyle::LowercaseRoman, nullptr), u"iv");
ASSERT_EQ(ListLevel::GetEffectiveValue(5, NumberStyle::Custom, u"001, 002, 003, ..."), u"005");