Browse our Products

Aspose.Slides for .NET 21.6 Release Notes

KeySummaryCategoryRelated Documentation
SLIDESNET-42514Support for Cylinder column shape for 3-D Column and 3-D Bar ChartsFeaturehttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-42447Support for 3-D Bar ChartFeaturehttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-37955Support for 3D Transforms for thumbnailsFeaturehttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-30675Support for Presentation to XAML exportFeature
SLIDESNET-42623Loading presentation throws PptxReadExceptionBughttps://docs.aspose.com/slides/net/open-presentation/
SLIDESNET-42598Copying Slide with Chart runs into DeadlockBughttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-42586PPTX update chart values produces bad output fileBughttps://docs.aspose.com/slides/net/chart-workbook/
SLIDESNET-42583SVG external link is removed from slideBughttps://docs.aspose.com/slides/net/save-presentation/
SLIDESNET-42582IParagraph.GetRect returns wrong value for heightBughttps://docs.aspose.com/slides/net/manage-paragraph/
SLIDESNET-42578IParagraph.GetRect returns incorrect position or width for list itemsBughttps://docs.aspose.com/slides/net/manage-paragraph/
SLIDESNET-42568PPTX to JPEG: Wrong fonts used in the output fileBughttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESNET-42563Animations getting damaged when PPT file is savedBug<https://docs.aspose.com/slides/net/save-presentation/ https://docs.aspose.com/slides/net/powerpoint-animation/>
SLIDESNET-42561PPTX to PDF: Unwanted shape in output fileBughttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-42554Creating thumbnail of chart thows ArgumentExceptionBughttps://docs.aspose.com/slides/net/create-shape-thumbnails/
SLIDESNET-42550Calculated paragraph height is incorrectBughttps://docs.aspose.com/slides/net/manage-paragraph/
SLIDESNET-41563Image rotation is missing in generated thumbnailBughttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-41008The effects lost in generated PNGBughttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESNET-39925Pptx to pdf not properly convertedBughttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-39365Missing shape shadow and bevel when converting to PDFBughttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-38555Incorrect font size in notes pageBughttps://docs.aspose.com/slides/net/shape-effective-properties/
SLIDESNET-369443D object is missing in generated thumbnailBughttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-363853D effects are missing for shapes in exported PDFBughttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-34958The pentagon shape is improperly rendered in generated PDFBughttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-34632The border for the shapes are improperly around the shape in exported XPSBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-xps/
SLIDESNET-32336Wrong shape direction on thumbnailBughttps://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.