Aspose.Slides for CPP 18.11 Release Notes

KeySummaryCategory
SLIDESCPP-1582Improve thumbnails rendering quality (v18.11)Feature
SLIDESNET-40224Add support for Strict Open XML formatFeature
SLIDESNET-40512Support for setting callout shape for series data labelFeature
SLIDESNET-40518Support to get effects by text-box paragraphsFeature
SLIDESNET-40523Implement serialization with Strict Open XML format complianceFeature
SLIDESNET-40613ChartData SetRange on a Pivot TableFeature

Public API Changes

GetEffectsByParagraph() method has been added to ISequence and Sequence classes

GetEffectsByParagraph() method has been added to ISequence and Sequence classes. It returns the array of effects for the specified text paragraph.

System::ArrayPtr<System::SharedPtr<IEffect>> GetEffectsByParagraph(System::SharedPtr<IParagraph> paragraph);

Usage example:

{
    System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"Presentation.pptx");
    System::Details::DisposeGuard<1> __dispose_guard_0({pres});
    try
    {
        System::SharedPtr<ISequence> sequence = pres->get_Slides()->idx_get(0)->get_Timeline()->get_MainSequence();
        System::SharedPtr<IAutoShape> autoShape = System::DynamicCast<Aspose::Slides::IAutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));

        auto paragraph_enumerator = autoShape->get_TextFrame()->get_Paragraphs()->GetEnumerator();
        while (paragraph_enumerator->MoveNext())
        {
            auto paragraph = paragraph_enumerator->get_Current();
            System::ArrayPtr<System::SharedPtr<IEffect>> effects = sequence->GetEffectsByParagraph(paragraph);
            if (effects->get_Length() > 0)
                System::Console::WriteLine(System::String(u"Paragraph \"") + paragraph->get_Text() + u"\" has " + System::ObjectExt::ToString(effects[0]->get_Type()) + u" effect.");
        }
    }
    catch(...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}

Saving presentation with Strict and Transitional conformance class option has been added

get_Conformance() and set_Conformance() methods have been added to Aspose::Slides::Export::PptxOptions class. The methods allows saving the presentation with Strict and Transitional Open XML Presentation conformance class.

Aspose::Slides::Export::Conformance get_Conformance();
void set_Conformance(Aspose::Slides::Export::Conformance value);

Aspose::Slides::Export::Conformance enum consists of three named constants:

  • Ecma376_2006 - Specifies that the document conforms to the ECMA376:2006.
  • Iso29500_2008_Transitional - Specifies that the document conforms to the ISO/IEC 29500:2008 Transitional conformance class.
  • Iso29500_2008_Strict - Specifies that the document conforms to the ISO/IEC 29500:2008 Strict conformance class.

The default value is Ecma376_2006.

For example, the following code allows saving the presentation in Strict format.

{
    System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(u"Presentation.pptx");
    System::Details::DisposeGuard<1> __dispose_guard_0({presentation});
    try
    {
        System::SharedPtr<PptxOptions> opt = System::MakeObject<PptxOptions>();
        opt->set_Conformance(Aspose::Slides::Export::Conformance::Iso29500_2008_Strict);
        presentation->Save(u"PresOut.pptx", Aspose::Slides::Export::SaveFormat::Pptx, opt);
    }
    catch(...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}