Aspose.Slides for C++ 23.3 Release Notes

Supported Platforms

  • Aspose.Slides for C++ for Windows x64/x86 (Microsoft Visual Studio 2017 or later).
  • Aspose.Slides for C++ for Linux (Clang 3.9 or later, GCC 6.1 or later).
  • Aspose.Slides for C++ for macOS (Xcode 13.4 or later).

New Features and Enhancements

Key Summary Category Related Documentation
SLIDESNET-43760 Managing Trim Video settings Feature https://docs.aspose.com/slides/net/convert-powerpoint-to-video/
SLIDESNET-43659 Animation timing settings: Rewind when done playing Feature https://docs.aspose.com/slides/net/shape-animation/#change-animation-effect-timing-properties
SLIDESNET-43672 EMF images are blurred when converting PPTX to PDF Enhancement https://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43634 Add support for Audio/Video plugin in ODP format Feature https://docs.aspose.com/slides/net/convert-openoffice-odp/

Other Improvements and Changes

Key Summary Category Related Documentation
SLIDESCPP-3611 Use Aspose.Slides for .NET 23.3 features Enhancement https://docs.aspose.com/slides/net/aspose-slides-for-net-23-3-release-notes/
SLIDESCPP-3578 Improve usability of Aspose.Slides for C++ API for setter expressions Enhancement

Public API Changes

New methods have been added to various interfaces and classes to improve API usability.

These methods have been added to reduce the complexity of invocation chains.

It should be noted that the old way can still be used and is fully equivalent to the new way.

List of methods:

Class name Ordinary syntax New improved syntax
Aspose::Slides::Animation::IEffect get_Behaviors()->idx_set(index, value) set_Behavior(index, value)
Aspose::Slides::Animation::Effect get_Behaviors()->idx_set(index, value) set_Behavior(index, value)
Aspose::Slides::ICustomData get_Tags()->idx_set(name, value) set_Tag(name, value)
Aspose::Slides::CustomData get_Tags()->idx_set(name, value) set_Tag(name, value)
Aspose::Slides::IControl get_Properties()->idx_set(name, value) set_Property(name, value)
Aspose::Slides::Control get_Properties()->idx_set(name, value) set_Property(name, value)
Aspose::Slides::IColorFormat get_ColorTransform()->idx_set(index, value) set_ColorOperation(index, value)
Aspose::Slides::ColorFormat get_ColorTransform()->idx_set(index, value) set_ColorOperation(index, value)
Aspose::Slides::IPresentation get_DocumentProperties()->idx_set(name, value) set_DocumentProperty(name, value)
Aspose::Slides::Presentation get_DocumentProperties()->idx_set(name, value) set_DocumentProperty(name, value)

Example:

This code snippet:

presentation->get_Tags()->idx_set(u"Content Creator", u"My Name");

Can be rewritten as follows:

presentation->set_Tag(u"Content Creator", u"My Name");

Animation timing settings

The ITiming::get_Rewind() and ITiming::set_Rewind() methods have been added to specify whether an effect will rewind after playing.

Rewind when done playing

Example:

 System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(u"demo.pptx");
        
// Gets the effects sequence for the first slide
System::SharedPtr<ISequence> effectsSequence = presentation->get_Slide(0)->get_Timeline()->get_MainSequence();
        
// Gets the first effect of the main sequence.
System::SharedPtr<IEffect> effect = effectsSequence->idx_get(0);
        
// Turns the effect Timing/Rewind on.
effect->get_Timing()->set_Rewind(true);}

Trim Video Settings

The IVideoFrame::get_TrimFromStart(), IVideoFrame::set_TrimFromStart(), IVideoFrame::get_TrimFromEnd(), and IVideoFrame::set_TrimFromEnd() methods have been added to manage Trim Video settings.

Trim Video settings

Example:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();
        
System::SharedPtr<ISlide> slide = pres->get_Slide(0);
System::SharedPtr<IVideo> video = pres->get_Videos()->AddVideo(System::IO::File::ReadAllBytes(u"video.mp4"));
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(0.0f, 0.0f, 100.0f, 100.0f, video);

// sets the trimming start time to 1sec
videoFrame->set_TrimFromStart(1000.f);

// sets the triming end time to 2sec
videoFrame->set_TrimFromEnd(2000.f);

IChartDataPoint::get_Index() method has been added

To allow you determine what parent’s children collection this data point applies to, the IChartDataPoint::get_Index() property has been added.

Example:

System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(u"pres.pptx");
System::SharedPtr<Chart> chart = System::ExplicitCast<Aspose::Slides::Charts::Chart>(presentation->get_Slide(0)->get_Shape(0));
System::SharedPtr<IChartDataPointCollection> dataPoints = chart->get_ChartData()->get_ChartSeries(0)->get_DataPoints();

for (auto&& dataPoint : dataPoints)
{
    System::Console::WriteLine(u"Point with index {0} is applied to {1}", dataPoint->get_Index(), dataPoint->get_Value());
}