Browse our Products

Aspose.Words for C++ 23.8 Release Notes

Major Features

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

  • Added support for CITATION and BIBLIOGRAPHY fields.
  • Introduced functionality to automatically generate a Table of Contents (TOC) for MOBI documents.
  • Expanded PdfEncryptionDetails constructor with PdfPermissions.
  • Introduced a new public property to specify the size of rendered images in pixels.
  • Implemented shaping of vertical text for EMF metafiles.

Full list of changes

Public API and Backward Incompatible Changes

This section lists public API changes that were introduced in Aspose.Words 23.8. 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 to specify the size of rendered images in pixels

The following public property has been added to the ImageSaveOptions class:

    /// Gets or sets the size of a generated image in pixels.
    ///
    /// This property has effect only when saving to raster image formats.
    ///
    /// The default value is (0 x 0), which means that the size of the generated image will be calculated
    /// according to the size of the image in points, the specified resolution and scale.
    ASPOSE_WORDS_SHARED_API System::Drawing::Size get_ImageSize() const;
    
    /// Setter for Aspose::Words::Saving::ImageSaveOptions::get_ImageSize
    ASPOSE_WORDS_SHARED_API void set_ImageSize(System::Drawing::Size value);

Added PdfEncryptionDetails ctor overload with PdfPermissions

    ASPOSE_WORDS_SHARED_API PdfEncryptionDetails(const System::String& userPassword, const System::String& ownerPassword, Aspose::Words::Saving::PdfPermissions permissions);

Added the ability to generate TOC (table of contents) for MOBI documents

Now Aspose.Words for C++ can generate TOC (table of contents) for MOBI documents.

Desired depth of TOC can be specified same way as it’s done for AZW3 or EPUB documents using HtmlSaveOptions.NavigationMapLevel property.

Note: Currently MOBI TOC won’t be displayed by some viewers. For example, MOBI TOC won’t be displayed by calibre app.

Supported CITATION and BIBLIOGRAPHY fields

Now the CITATION and BIBLIOGRAPHY fields are supported by Aspose.Words and can be updated with the Document.UpdateFields, Range.UpdateFields or Field.Update methods.

Aspose.Words supports following citation and bibliography styles:

  • APA - APASixthEditionOfficeOnline.xsl
  • Chicago - CHICAGO.XSL
  • GB7714 - GB.XSL
  • GOST - Name Sort - GostName.XSL
  • GOST - Title Sort - GostTitle.XSL
  • Harvard - Anglia - HarvardAnglia2008OfficeOnline.xsl
  • IEEE - IEEE2006OfficeOnline.xsl
  • ISO 690 - First Element and Date - ISO690.XSL
  • ISO 690 - Numerical Reference - ISO690Nmerical.XSL
  • MLA - MLASeventhEditionOfficeOnline.xsl
  • SIST02 - SIST02.XSL
  • Turabian - TURABIAN.XSL

The IBibliographyStylesProvider interface and the FieldOptions.BibliographyStylesProvider property are introduced to override built-in styles or provide custom one:

    /// \interface IBibliographyStylesProvider
    /// Implement this interface to provide bibliography style for
    /// the  <see cref="Aspose::Words::Fields::FieldBibliography">FieldBibliography</see> and <see cref="Aspose::Words::Fields::FieldCitation">FieldCitation</see> fields when they're updated.
    class ASPOSE_WORDS_SHARED_CLASS IBibliographyStylesProvider : public virtual System::Object
    {
    public:
    
        /// Returns bibliography style.
        /// 
        /// @param styleFileName The bibliography style file name.
        /// 
        /// @return The <see cref="System::IO::Stream">Stream</see> with bibliography style XSLT stylesheet.
        virtual System::SharedPtr<System::IO::Stream> GetStyle(System::String styleFileName) = 0;
    
    };
    
    class ASPOSE_WORDS_SHARED_CLASS FieldOptions final : public System::Object
    {
    /// Gets a provider that returns a bibliography style for
    /// the <see cref="Aspose::Words::Fields::FieldBibliography">FieldBibliography</see> and <see cref="Aspose::Words::Fields::FieldCitation">FieldCitation</see> fields.
    ASPOSE_WORDS_SHARED_API const System::SharedPtr<Aspose::Words::Fields::IBibliographyStylesProvider>& get_BibliographyStylesProvider() const;
    
    /// Sets a provider that returns a bibliography style for
    /// the <see cref="Aspose::Words::Fields::FieldBibliography">FieldBibliography</see> and <see cref="Aspose::Words::Fields::FieldCitation">FieldCitation</see> fields.
    ASPOSE_WORDS_SHARED_API void set_BibliographyStylesProvider(const System::SharedPtr<Aspose::Words::Fields::IBibliographyStylesProvider>& value);
    }

The property HtmlSaveOptions.EpubNavigationMapLevel has been deprecated.

The HtmlSaveOptions.EpubNavigationMapLevel property is marked as obsolete. Please, use HtmlSaveOptions.NavigationMapLevel instead.

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 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.