Browse our Products

Aspose.Words for C++ 24.2 Release Notes

Major Features

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

  • Introduced new public properties for enhanced style management.
  • Added the capability to specify SvgSaveOptions during rendering using ShapeRenderer.Save() and OfficeMathRenderer.Save() methods.
  • Enhanced functionality to retrieve the actual text of reference marks for footnotes and endnotes.
  • Continued extending the DrawingML Chart API capabilities.
  • Added an ability to preserve empty lines while loading Markdown files.

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.2. 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 an ability to preserve empty lines while loading Markdown files.

Implemented new public classes with a new public property:

/// Allows to specify additional options when loading LoadFormat::Markdown document into a Document object.
class ASPOSE_WORDS_SHARED_CLASS MarkdownLoadOptions
{
    ...
    /// Gets or sets a boolean value indicating whether to preserve empty lines while loading a LoadFormat::Markdown document.
    /// The default value is false.
    /// Normally, empty lines between block-level elements in Markdown are ignored. Empty lines at the beginning and
    /// end of the document are also ignored. This option allows to import such empty lines.
    ASPOSE_WORDS_SHARED_API bool get_PreserveEmptyLines() const;
    ASPOSE_WORDS_SHARED_API void set_PreserveEmptyLines(bool value);
};

Introduced new public properties for enhanced style management.

A new public properties Priority, UnhideWhenUsed, and SemiHidden have been added to the class Style.

/// Gets/sets the integer value that represents the priority for sorting the styles in the Styles task pane.
int get_Priority();
void set_Priority(int value);

/// Gets/sets whether the style used in the current document unhides from the Styles gallery and from the Styles task pane.
bool get_UnhideWhenUsed();
void set_UnhideWhenUsed(bool value);

/// Gets/sets whether the style hides from the Styles gallery and from the Styles task pane.
bool get_SemiHidden();
void set_SemiHidden(bool value);

Added NodeRendererBase.Save() methods that accept SvgSaveOptions.

New public methods have been added to class NodeRendererBase allowing to pass SvgSaveOptions:

/// Renders the shape into an SVG image and saves into a file.
ASPOSE_WORDS_SHARED_API void Save(const System::String& fileName, System::SharedPtr<Aspose::Words::Saving::SvgSaveOptions> saveOptions);

/// Renders the shape into an SVG image and saves into a stream.
ASPOSE_WORDS_SHARED_API void Save(const System::SharedPtr<System::IO::Stream>& stream, System::SharedPtr<Aspose::Words::Saving::SvgSaveOptions> saveOptions);

Added public property Appearance to the StructuredDocumentTagRangeStart class.

A new public property Appearance has been added to class StructuredDocumentTagRangeStart and IStructuredDocumentTag interface:

/// Gets or sets the appearance of the structured document tag.
ASPOSE_WORDS_SHARED_API Aspose::Words::Markup::SdtAppearance get_Appearance() override;
ASPOSE_WORDS_SHARED_API void set_Appearance(Aspose::Words::Markup::SdtAppearance value) override;

Added public property Footnote.ActualReferenceMark and public method Document.UpdateActualReferenceMarks.

An ability to get the actual text of reference marks for footnotes and endnotes has been implemented.

The following new public members have been added to the Footnote and Document classes:

/// Gets the actual text of the reference mark displayed in the document for this footnote.
ASPOSE_WORDS_SHARED_API System::String get_ActualReferenceMark();

/// Updates the Footnote::ActualReferenceMark property of all footnotes and endnotes in the document.
ASPOSE_WORDS_SHARED_API void UpdateActualReferenceMarks();

Continued extending the DrawingML Chart API capabilities.

A new class AxisTickLabels has been implemented. The properties related to axis tick mark labels have been marked as obsolete in the ChartAxis class and moved to the new class. A property TickLabels of the AxisTickLabels type has been added to the ChartAxis class.

Also, the ability to set font formatting for tick mark labels has been implemented: a new AxisTickLabels.Font property has been added.

And a Format property, which allows defining line formatting for an axis and fill for tick mark labels, has been added to the ChartAxis class.

/// Represents properties of axis tick mark labels.
class ASPOSE_WORDS_SHARED_CLASS AxisTickLabels
{
    /// Gets or sets the position of the tick labels on the axis.
    ASPOSE_WORDS_SHARED_API Aspose::Words::Drawing::Charts::AxisTickLabelPosition get_Position();
    ASPOSE_WORDS_SHARED_API void set_Position(Aspose::Words::Drawing::Charts::AxisTickLabelPosition value);

    /// Gets or sets the distance of the tick labels from the axis.
    ASPOSE_WORDS_SHARED_API int32_t get_Offset();
    ASPOSE_WORDS_SHARED_API void set_Offset(int32_t value);

    /// Gets or sets the interval at which the tick labels are drawn.
    ASPOSE_WORDS_SHARED_API int32_t get_Spacing();
    ASPOSE_WORDS_SHARED_API void set_Spacing(int32_t value);

    /// Gets or sets a flag indicating whether to use automatic interval for drawing the tick labels.
    ASPOSE_WORDS_SHARED_API bool get_IsAutoSpacing();
    ASPOSE_WORDS_SHARED_API void set_IsAutoSpacing(bool value);

    /// Gets or sets text alignment of the axis tick labels.
    ASPOSE_WORDS_SHARED_API Aspose::Words::ParagraphAlignment get_Alignment();
    ASPOSE_WORDS_SHARED_API void set_Alignment(Aspose::Words::ParagraphAlignment value);

    /// Provides access to font formatting of the tick labels.
    ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Font> get_Font();
};

class ASPOSE_WORDS_SHARED_CLASS ChartAxis
{
    /// Provides access to the properties of the axis tick mark labels.
    ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Drawing::Charts::AxisTickLabels> get_TickLabels();

    /// Provides access to line formatting of the axis and fill of the tick labels.
    ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Drawing::Charts::ChartFormat> get_Format();
};

A new public class ChartDataTable has been implemented. A property DataTable of this type has been added to the Chart class:

/// Allows to specify properties of a chart data table.
class ASPOSE_WORDS_SHARED_CLASS ChartDataTable
{
    /// Gets or sets a flag indicating whether the data table will be shown for the chart.
    ASPOSE_WORDS_SHARED_API bool get_Show() const;
    ASPOSE_WORDS_SHARED_API void set_Show(bool value);

    /// Gets or sets a flag indicating whether legend keys are displayed in the data table.
    ASPOSE_WORDS_SHARED_API bool get_HasLegendKeys() const;
    ASPOSE_WORDS_SHARED_API void set_HasLegendKeys(bool value);

    /// Gets or sets a flag indicating whether a horizontal border of the data table is displayed.
    ASPOSE_WORDS_SHARED_API bool get_HasHorizontalBorder() const;
    ASPOSE_WORDS_SHARED_API void set_HasHorizontalBorder(bool value);

    /// Gets or sets a flag indicating whether a vertical border of the data table is displayed.
    ASPOSE_WORDS_SHARED_API bool get_HasVerticalBorder() const;
    ASPOSE_WORDS_SHARED_API void set_HasVerticalBorder(bool value);

    /// Gets or sets a flag indicating whether an outline border, that is, a border around series and category names, is displayed.
    ASPOSE_WORDS_SHARED_API bool get_HasOutlineBorder() const;
    ASPOSE_WORDS_SHARED_API void set_HasOutlineBorder(bool value);

    /// Provides access to font formatting of the data table.
    ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Font> get_Font();

    /// Provides access to fill of text background and border formatting of the data table.
    ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Drawing::Charts::ChartFormat> get_Format();
};

class ASPOSE_WORDS_SHARED_CLASS Chart
{
    /// Provides access to properties of a data table of this chart.
    ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Drawing::Charts::ChartDataTable> get_DataTable();
};

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.