Browse our Products

Aspose.Slides for C++ 22.10 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

KeySummaryCategoryRelated Documentation
SLIDESNET-35636Add the support of 3D shadow effectsFeaturehttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-35634Add the support of 3D bevel effectsFeaturehttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-35907Set Transparent Effect for picture as filled shape in presentation fileEnhancementhttps://docs.aspose.com/slides/net/manage-placeholder/#set-placeholder-image-transparency
SLIDESNET-43437Compress presentation - embedded fontsEnhancement
SLIDESNET-43310Changing color of leader lines in Pie chartsFeaturehttps://docs.aspose.com/slides/net/powerpoint-charts/

Other Improvements and Changes

KeySummaryCategoryRelated Documentation
SLIDESCPP-3317Use Aspose.Slides for .NET 22.10 featuresEnhancementhttps://docs.aspose.com/slides/net/aspose-slides-for-net-22-10-release-notes/
SLIDESCPP-3548Application hangs when loading a presentationBughttps://docs.aspose.com/slides/cpp/slide-layout/
SLIDESCPP-3547Loading a PPT file throws ArgumentOutOfRangeExceptionBughttps://docs.aspose.com/slides/cpp/open-presentation/

Public API Changes

New methods have been added to the ISVGOptions interface

New get_UseFrameSize(), set_UseFrameSize(), get_UseFrameRotation() and set_UseFrameRotation() methods have been added to the ISVGOptions interface and SVGOptions class.

The get_UseFrameSize() and set_UseFrameSize() methods determine whether the text frame will be included in a rendering area.

Methods declaration:

/// <summary>
/// Determines whether the text frame will be included in a rendering area or not.
/// Read <see cref="bool"></see>.
/// Default value is false.
/// </summary>
bool get_UseFrameSize();

/// <summary>
/// Determines whether the text frame will be included in a rendering area or not.
/// Write <see cref="bool"></see>.
/// Default value is false.
/// </summary>
 void set_UseFrameSize(bool value);

The get_UseFrameRotation() and set_UseFrameRotation() methods determine whether to perform the specified rotation of the shape when rendering.

Methods declaration:

/// <summary>
/// Determines whether to perform the specified rotation of the shape when rendering or not.
/// Read <see cref="bool"></see>.
/// Default value is true.
/// </summary>
bool get_UseFrameRotation();

/// <summary>
/// Determines whether to perform the specified rotation of the shape when rendering or not.
/// Write <see cref="bool"></see>.
/// Default value is true.
/// </summary>
void set_UseFrameRotation(bool value);

The code snippet below demonstrates using these properties:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

auto svgOptions = System::MakeObject<SVGOptions>();

// Does not perform the specified rotation of the shape while rendering to SVG.
svgOptions->set_UseFrameRotation(false);

// Include the text frame in a rendering area while rendering to SVG.
svgOptions->set_UseFrameSize(true);

// Save shape to SVG
auto stream = System::MakeObject<System::IO::FileStream>(u"pres-out.svg", System::IO::FileMode::Create);
pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(1)->WriteAsSvg(stream, svgOptions);

Embedded fonts compress feature has been added

Embedded fonts can be compressed to decrease the size of the presentation that contains such fonts. To provide this functionality, the CompressEmbeddedFonts method was added to LowCode API.

Below is the snippet demonstrating compression:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

Aspose::Slides::LowCode::Compress::CompressEmbeddedFonts(pres);
pres->Save(u"pres-out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

New methods have been added to the IDataLabelCollection interface

New get_LeaderLinesColor() and set_LeaderLinesColor() methods have been added to the IDataLabelCollection interface and DataLabelCollection class. Now the color of all leader lines in the collection can be adjusted.

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

auto chart = System::ExplicitCast<Aspose::Slides::Charts::IChart>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
auto series = chart->get_ChartData()->get_Series();
auto labels = series->idx_get(0)->get_Labels();

labels->set_LeaderLinesColor(System::Drawing::Color::FromArgb(255, 255, 0, 0));

Changes in type casting functions

The System::DynamicCast(), System::DynamicCast_noexcept(), System::StaticCast() and System::StaticCast_noexcept() functions are now marked as deprecated and will be removed in the upcoming releases. The System::ExplicitCast() and System::AsCast() functions should be used instead.

Obsolete code with the System::DynamicCast() function:

auto pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto shape = DynamicCast<Aspose::Slides::AutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));

New code with the System::ExplicitCast() function:

auto pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto shape = ExplicitCast<Aspose::Slides::AutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));

Obsolete code with the System::DynamicCast_noexcept() function:

auto pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto shape = DynamicCast_noexcept<Aspose::Slides::AutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));

New code with the System::AsCast() function:

auto pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto shape = AsCast<Aspose::Slides::AutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));

Obsolete code with the System::StaticCast() function:

SharedPtr<Aspose::Slides::IPresentation> pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto pres2 = StaticCast<Aspose::Slides::Presentation>(pres);

New code with the System::ExplicitCast() function:

SharedPtr<Aspose::Slides::IPresentation> pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto pres2 = ExplicitCast<Aspose::Slides::Presentation>(pres);

Obsolete code with the System::StaticCast_noexcept() function:

SharedPtr<Aspose::Slides::IPresentation> pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto pres2 = StaticCast_noexcept<Aspose::Slides::Presentation>(pres);

New code with the System::AsCast() function:

SharedPtr<Aspose::Slides::IPresentation> pres = MakeObject<Presentation>(u"MyPresentation.pptx");
auto pres2 = AsCast<Aspose::Slides::Presentation>(pres);