Browse our Products

Aspose.Slides for C++ 26.8 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, glibc 2.23 or later).
  • Aspose.Slides for C++ for macOS x86_64/ARM64 (Xcode 13.4 or later).

New Features and Enhancements

KeySummaryCategoryRelated Documentation
SLIDESNET-43212Adding comment to table results in adding comment to slideEnhancementhttps://docs.aspose.com/slides/net/presentation-comments/
SLIDESNET-45459Implement export of chart objects to Markdown formatFeature
SLIDESNET-45461Implement export of SmartArt objects to Markdown formatFeature
SLIDESNET-45463Add support for rendering an image of an individual paragraphFeature

Other Improvements and Changes

KeySummaryCategoryRelated Documentation
SLIDESCPP-4149Use Aspose.Slides for .NET 26.8 featuresEnhancementhttps://releases.aspose.com/slides/net/release-notes/2026/aspose-slides-for-net-26-8-release-notes/
SLIDESCPP-4123Line end decorations are cropped when exporting shapes to PNGBug

Public API Changes

Support for rendering an image of an individual paragraph

The new GetImage methods have been added to the IParagraph interface and Paragraph class. These methods allow you to render a paragraph as an image.

  • SharedPtr<IImage> GetImage();
  • SharedPtr<IImage> GetImage(float scaleX, float scaleY);

Usage examples

The following example shows how to render each paragraph in all AutoShapes on a slide as an image with custom scaling:

SharedPtr<Presentation> pres = MakeObject<Presentation>(u"sample.pptx");
SharedPtr<ISlide> slide = pres->get_Slide(0);

int shapeIndex = 0;
for (auto&& shape : slide->get_Shapes())
{
    shapeIndex++;

    SharedPtr<IAutoShape> autoShape = System::AsCast<IAutoShape>(shape);
    if (autoShape == nullptr || autoShape->get_TextFrame() == nullptr)
        continue;

    int paragraphIndex = 0;
    for (auto&& paragraph : autoShape->get_TextFrame()->get_Paragraphs())
    {
        paragraphIndex++;

        SharedPtr<IImage> paragraphImage = paragraph->GetImage(2.0f, 2.0f);
        paragraphImage->Save(String::Format(u"shape{0}_paragraph{1}.png", shapeIndex, paragraphIndex));
    }
}

The following example shows how to render each paragraph in a table:

SharedPtr<Presentation> pres = MakeObject<Presentation>(u"sample.pptx");
SharedPtr<ISlide> slide = pres->get_Slide(0);
SharedPtr<Table> table = System::AsCast<Table>(slide->get_Shape(0));

int paragraphIndex = 0;
const int rowsCount = table->get_Rows()->get_Count();
const int columnsCount = table->get_Columns()->get_Count();

for (int iRow = 0; iRow < rowsCount; iRow++)
{
    for (int iCol = 0; iCol < columnsCount; iCol++)
    {
        auto cell = System::ExplicitCast<Aspose::Slides::Cell>(table->idx_get(iCol, iRow));
        if (cell->get_TextFrame() == nullptr)
            continue;

        foreach (auto&& parapgraph : cell->get_TextFrame()->get_Paragraphs())
        {
            paragraphIndex++;

            SharedPtr<IImage> paragraphImage = paragraph->GetImage();
            paragraphImage->Save(String::Format(u"paragraph{0}.png", paragraphIndex));
        }
    }
}