Aspose.Slides for .NET 22.9 Release Notes

KeySummaryCategoryRelated Documentation
SLIDESNET-43296Get a list of all unknown fontsFeaturehttps://docs.aspose.com/slides/net/font-substitution/
SLIDESNET-43263Get values of Timing/Repeat option of animated shapeEnhancementhttps://docs.aspose.com/slides/net/shape-animation/
SLIDESNET-43434Saving PPTX throws invalid parameter exception after merging presentationsBughttps://docs.aspose.com/slides/net/render-slide-as-svg-image/
SLIDESNET-43407Loading a presentation throws ArgumentOutOfRangeExceptionBughttps://docs.aspose.com/slides/net/open-presentation/
SLIDESNET-43398Saving a presentation with SVG image throws “Parameter is invalid” errorBughttps://docs.aspose.com/slides/net/save-presentation/
SLIDESNET-43395PPTX to PNG: Different order of dataBughttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-43390Text disappeared when converting PPTX to PDFBughttps://docs.aspose.com/slides/net/presentation-properties/
SLIDESNET-43387Japanese text line is wrapped when converting slide to PNGBughttps://docs.aspose.com/slides/net/convert-slide/#converting-slides-to-bitmap-and-saving-the-images-in-png
SLIDESNET-43380Save method throws ArgumentException error after cloning slideBughttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-43372AddClone method throws ArgumentException with a slide containing SVG imageBughttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-43367Reggresion: Cloning Slide with SVG throws GDI+ exception in LinuxBughttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-43353WMF images are rendered incorrectly when converting PPTX to PDFBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43338HTML text is imported incorrectlyBughttps://docs.aspose.com/slides/net/manage-paragraph/#import-html-text-in-paragraphs
SLIDESNET-43329Failed converting presentation to pptx with setting decimal valuesBughttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-43318Text position is wrong when converting PPT to HTMLBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-html/
SLIDESNET-43317Text position is wrong when converting PPT to PDFBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43308Axis labels are displayed incorrectly for Bar chart when converting from PPTX to PDFBughttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-43289Changing BubbleSizeScale property leads to missing a chartBughttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-43280Number labels on chart do not show correct valuesBughttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-43204IndexOutOfRangeException is thrown when converting PPTX to HTML5Bughttps://docs.aspose.com/slides/net/export-to-html5/
SLIDESNET-43110Pie charts are getting more rounded and have 3D appearanceBughttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-42588Converting PPTX to HTML doesn’t work properlyBughttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-html/
SLIDESNET-41575Thumbnail of Surface Chart is emptyBughttps://docs.aspose.com/slides/net/convert-slide/

Public API Changes

New method GetSubstitutions has been added to the IFontsManager interface

GetSubstitutions, a new method, has been added to the IFontsManager interface and FontsManager class.

The GetSubstitutions method can be used to get information about fonts that will be replaced when a presentation is rendered.

Method declaration:

/// <summary>
/// Gets the information about fonts that will be replaced when the presentation is rendered.
/// </summary>
/// <returns>Collection of all fonts substitution <see cref="FontSubstitutionInfo"/>in the presentation rendering process</returns>
IEnumerable<FontSubstitutionInfo> GetSubstitutions();
/// <summary>
/// This structure represents information about the font replacement when it will be rendered.
/// </summary>
public class FontSubstitutionInfo
{
    /// <summary>
    /// Indicates source font name in presentation.
    /// Read-only <see cref="string"/>
    /// </summary>
    public string OriginalFontName

    /// <summary>
    /// Indicates replacement font name for the original font.
    /// Read-only <see cref="string"/>
    /// </summary>
    public string SubstitutedFontName
}

This C# code shows you how the GetSubstitutions method is used to get all fonts that will be substituted when a presentation is rendered:

using (Presentation pres = new Presentation("pres.pptx"))
{
    foreach (var fontSubstitution in pres.FontsManager.GetSubstitutions())
    {
        Console.WriteLine("{0} -> {1}", fontSubstitution.OriginalFontName, fontSubstitution.SubstitutedFontName);
    }
} 

New Animation Timing properties were added - RepeatUntilEndSlide and RepeatUntilNextClick

These new properties have been added to the Timing class: RepeatUntilEndSlide and RepeatUntilNextClick.

Properties declaration:

/// <summary>
/// This attribute specifies whether the effect will be repeated until the end of the slide.
/// Read/write <see cref="bool"/>.
/// </summary>
/// <example>
/// <code>
/// [C#]
/// using (Presentation presentation = new Presentation("demo.pptx"))
/// {
///     // Gets the effects sequence for the first slide
///     ISequence effectsSequence = presentation.Slides[0].Timeline.MainSequence;
///
///     // Gets the first effect of the main sequence.
///     IEffect effect = effectsSequence[0];
///
///     // Changes the effect Timing/Repeat to "Until End of Slide"
///     effect.Timing.RepeatUntilEndSlide = true;
/// }
/// </code>
/// </example>
bool RepeatUntilEndSlide { get; set; }
/// <summary>
/// This attribute specifies whether the effect will be repeated until the next click.
/// Read/write <see cref="bool"/>.
/// </summary>
/// <example>
/// <code>
/// using (Presentation presentation = new Presentation("demo.pptx"))
/// {
///     // Gets the effects sequence for the first slide
///     ISequence effectsSequence = presentation.Slides[0].Timeline.MainSequence;
///
///     // Gets the first effect of the main sequence.
///     IEffect effect = effectsSequence[0];
///
///     // Changes the effect Timing/Repeat to "Until Next Click"
///     effect.Timing.RepeatUntilNextClick = true;
/// }
/// </code>
/// </example>
bool RepeatUntilNextClick { get; set; }

Example that shows how to change an effect Timing/Repeat setting to “Until End of Slide”:

using (Presentation presentation = new Presentation("demo.pptx"))
{
    // Gets the effects sequence for the first slide
    ISequence effectsSequence = presentation.Slides[0].Timeline.MainSequence;

    // Gets the first effect of the main sequence.
    IEffect effect = effectsSequence[0];

    // Changes the effect Timing/Repeat to "Until End of Slide"
    effect.Timing.RepeatUntilEndSlide = true;
}