Browse our Products

Aspose.Slides for C++ 21.6 Release Notes

Supported Platforms

  • Aspose.Slides for C++ for Windows x64 (Microsoft Visual C++).
  • Aspose.Slides for C++ for Windows x86 (Microsoft Visual C++).
  • Aspose.Slides for C++ for Linux (Clang).

New Features and Enhancements

KeySummaryCategory
SLIDESNET-30675Support of Presentation to XAML exportFeature
SLIDESNET-42514Support of Cylinder column shape for 3-D Column and 3-D Bar ChartsFeature
SLIDESNET-42447Support of 3-D Bar ChartFeature
SLIDESNET-37955Support of 3D Transforms for thumbnailsFeature

Other Improvements and Changes

KeySummaryCategory
SLIDESCPP-2701Use Aspose.Slides for .NET 21.6 featuresEnhancement

Public API Changes

Support of Presentation to XAML export

To support Presentation export to XAML, we added new API members.

IXamlOptions interface and XamlOptions class. IXamlOptions declaration:

/// <summary>
/// Options that control how a XAML document is saved.
/// </summary>
class IXamlOptions : public virtual Aspose::Slides::Export::ISaveOptions
{
public:
    /// <summary>
    /// Determines whether hidden slides will be exported.
    /// </summary>
    virtual bool get_ExportHiddenSlides() = 0;
    /// <summary>
    /// Determines whether hidden slides will be exported.
    /// </summary>
    virtual void set_ExportHiddenSlides(bool value) = 0;
    /// <summary>
    /// Represents an implementation of IOutputSaver interface.
    /// </summary>
    virtual System::SharedPtr<IXamlOutputSaver> get_OutputSaver() = 0;
    /// <summary>
    /// Represents an implementation of IOutputSaver interface.
    /// </summary>
    virtual void set_OutputSaver(System::SharedPtr<IXamlOutputSaver> value) = 0;
};

For Presentation export to XAML, a new Save method overload got added to the Presentation class:

void Save(System::SharedPtr<Export::Xaml::IXamlOptions> options);

This code sample demonstrates the exporting of a Presentation to a set of XAML files:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
SharedPtr<IXamlOptions> options = System::MakeObject<XamlOptions>();
options->set_ExportHiddenSlides(true);
pres->Save(options);

The XAML files get saved in a newly created folder—“pres”.

The IXamlOutputSaver interface allows you to define your own output-saving service. IXamlOutputSaver declaration:

/// <summary>
/// Represents an output saver implementation for transfer data to the external storage.
/// </summary>
class IXamlOutputSaver : public System::Object
{
public:
    /// <summary>
    /// Saves a bytes array to a destination location.
    /// </summary>
    /// <param name="path">The destination path.</param>
    /// <param name="data">A binary data for saving to a destination location.</param>
    virtual void Save(System::String path, System::ArrayPtr<uint8_t> data) = 0;
};

IEffect::get_TargetShape() method has been added

The IEffect::get_TargetShape() method has been added. It returns the shape affected by the effect.

Method declaration:

/// <summary>
/// Returns target shape for effect.
/// Read-only <see cref="IShape"></see>.
/// </summary>
virtual System::SharedPtr<IShape> get_TargetShape() = 0;

This code sample demonstrates the output of information for all animated shapes in the main sequence for all slides in a presentation.

auto pres = System::MakeObject<Presentation>(u"SomePresentation.pptx");
for (auto slide : System::IterateOver(pres->get_Slides()))
{
    for (auto effect : System::IterateOver(slide->get_Timeline()->get_MainSequence()))
    {
        System::Console::WriteLine(u"{0} animation effect is set to shape #{1} on slide #{2}", 
            effect->get_Type(), effect->get_TargetShape()->get_UniqueId(), slide->get_SlideNumber());
    }
}