Aspose.Slides for .NET 21.6 Release Notes

Key Summary Category Related Documentation
SLIDESNET-42514 Support for Cylinder column shape for 3-D Column and 3-D Bar Charts Feature https://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-42447 Support for 3-D Bar Chart Feature https://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-37955 Support for 3D Transforms for thumbnails Feature https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-30675 Support for Presentation to XAML export Feature
SLIDESNET-42623 Loading presentation throws PptxReadException Bug https://docs.aspose.com/slides/net/open-presentation/
SLIDESNET-42598 Copying Slide with Chart runs into Deadlock Bug https://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-42586 PPTX update chart values produces bad output file Bug https://docs.aspose.com/slides/net/chart-workbook/
SLIDESNET-42583 SVG external link is removed from slide Bug https://docs.aspose.com/slides/net/save-presentation/
SLIDESNET-42582 IParagraph.GetRect returns wrong value for height Bug https://docs.aspose.com/slides/net/manage-paragraph/
SLIDESNET-42578 IParagraph.GetRect returns incorrect position or width for list items Bug https://docs.aspose.com/slides/net/manage-paragraph/
SLIDESNET-42568 PPTX to JPEG: Wrong fonts used in the output file Bug https://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESNET-42563 Animations getting damaged when PPT file is saved Bug <https://docs.aspose.com/slides/net/save-presentation/ https://docs.aspose.com/slides/net/powerpoint-animation/>
SLIDESNET-42561 PPTX to PDF: Unwanted shape in output file Bug https://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-42554 Creating thumbnail of chart thows ArgumentException Bug https://docs.aspose.com/slides/net/create-shape-thumbnails/
SLIDESNET-42550 Calculated paragraph height is incorrect Bug https://docs.aspose.com/slides/net/manage-paragraph/
SLIDESNET-41563 Image rotation is missing in generated thumbnail Bug https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-41008 The effects lost in generated PNG Bug https://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESNET-39925 Pptx to pdf not properly converted Bug https://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-39365 Missing shape shadow and bevel when converting to PDF Bug https://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-38555 Incorrect font size in notes page Bug https://docs.aspose.com/slides/net/shape-effective-properties/
SLIDESNET-36944 3D object is missing in generated thumbnail Bug https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-36385 3D effects are missing for shapes in exported PDF Bug https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-34958 The pentagon shape is improperly rendered in generated PDF Bug https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-34632 The border for the shapes are improperly around the shape in exported XPS Bug https://docs.aspose.com/slides/net/convert-powerpoint-to-xps/
SLIDESNET-32336 Wrong shape direction on thumbnail Bug https://docs.aspose.com/slides/net/3d-presentation/

Public API Changes

Support of Presentation to XAML export

To support Presentation export to XAML, we added new API members.

IXamlOptions interface and XamlOptions class. IXamlOptions definition:

/// <summary>
/// Options that control how a XAML document is saved.
/// </summary>
/// <example>
/// <code>
/// [C#]
/// using (Presentation pres = new Presentation("pres.pptx"))
/// {
/// 	pres.Save(new XamlOptions { ExportHiddenSlides = true });
/// }
/// </code>
/// </example>    
public interface IXamlOptions : ISaveOptions
{
    /// <summary>
    /// Determines whether hidden slides will be exported.
    /// </summary>
    /// <example>
    /// <code>
    /// [C#]
    /// using (Presentation pres = new Presentation("pres.pptx"))
    /// {
    /// 	pres.Save(new XamlOptions { ExportHiddenSlides = true });
    /// }
    /// </code>
    /// </example>        
    bool ExportHiddenSlides { get; set; }
    
    /// <summary>
    /// Represents an implementation of IOutputSaver interface.
    /// </summary>
    IXamlOutputSaver OutputSaver { get; set; }
}

For Presentation export to XAML, a new Save method overload got added to the Presentation class:

public void Save(IXamlOptions options);

This code sample demonstrates the exporting of a Presentation to a set of XAML files:

using (Presentation pres = new Presentation("pres.pptx"))
{
    pres.Save(new XamlOptions { ExportHiddenSlides = true });
}

The XAML files get saved in a newly created folder—“pres”.

The IXamlOutputSaver interface allows you to define your own output-saving service. IXamlOutputSaver definition:

/// <summary>
/// Represents an output saver implementation for transfer data to the external storage.
/// </summary>
public interface IXamlOutputSaver
{
    /// <summary>
    /// Saves a bytes array to a destination location.
    /// </summary>
    /// <param name="path">The destination path.</param>
    /// <param name="data">A binary data for saving to a destination location.</param>
    void Save(string path, byte[] data);
}

IEffect.TargetShape property has been added

The Aspose.Slides.Animation.IEffect.TargetShape property has been added. It returns the shape affected by the effect.

Property declaration:

/// <summary>
/// Returns target shape for effect.
/// Read-only <see cref="IShape"/>.
/// </summary>
IShape TargetShape { get; }

This code sample demonstrates the output of information for all animated shapes in the main sequence for all slides in a presentation.

using (Presentation pres = new Presentation("SomePresentation.pptx"))
{
    foreach (ISlide slide in pres.Slides)
        foreach (IEffect effect in slide.Timeline.MainSequence)
            Console.WriteLine(effect.Type + " animation effect is set to shape#" + effect.TargetShape.UniqueId + " on slide#" + slide.SlideNumber);
}

Aspose.Slides.Export.Web.* interfaces were removed

These interfaces were removed from the Aspose.Slides.Export.Web namespace:

string Compile<TModel>(string key, TModel model);

Was replaced with

string Compile(string key, object model);

Storage.ContainsKey method has been added

The Aspose.Slides.Export.Web.Storage.ContainsKey method has been added. It allows you to check whether some value with a certain key was added to the storage.

Method declaration:

/// <summary>
/// Determines whether the storage contains an element with the specified key.
/// </summary>
/// <param name="key">Key of the value.</param>
/// <returns>True if the storage contains an element with the specified key, false otherwise.</returns>
public bool ContainsKey(string key)
{
   ...
}

A sample code—an example of Aspose.Slides.WebExtensions template—that shows you how to use the new method:

@model TemplateContext<AutoShape>

@{
    AutoShape contextObject = Model.Object;

    string id = "slide-" + contextObject.Slide.SlideId + "-shape-" + contextObject.UniqueId;

    string animationAttributes = "";
    if (Model.Local.ContainsKey("animationAttributes"))
    {
        animationAttributes = Model.Local.Get<string>("animationAttributes");
    }
}

@{
    <div class="shape" id="@id" @Raw(animationAttributes)>
        @{
            var subModel = Model.SubModel((TextFrame)contextObject.TextFrame);
            @Include("textframe", subModel)        
        }
    </div>
}

WebDocumentOptions.AnimateShapes property has been added

The Aspose.Slides.Export.Web.WebDocumentOptions.AnimateShapes property has been added. When the property is set to true, shape animations get added to exported HTML results.

This code sample demonstrates how the property can be used in a project based on Aspose.Slides.WebExtensions:

using (Presentation pres = new Presentation(@"SomePresentation.pptx"))
{
    WebDocumentOptions opts = new WebDocumentOptions() { EmbedImages = false , AnimateTransitions = true, AnimateShapes = true };
    pres.ToSinglePageWebDocument(opts, @"templates\single-page", @"single-page-presentation").Save();
}

More information about Aspose.Slides.WebExtensions is available here: New HTML Export System - Aspose.Slides.WebExtensions.