Browse our Products

Aspose.Slides for .NET 22.11 Release Notes

KeySummaryCategoryRelated Documentation
SLIDESNET-43350Convert Presentation to videoFeature
SLIDESNET-43457RandomBar animation effectsFeature
SLIDESNET-43442Animation of textFeature
SLIDESNET-43425Getting effect sound settings from animated objectFeaturehttps://docs.aspose.com/slides/net/shape-animation/
SLIDESNET-43424Getting embedded audio file from hyperlinkClick settingsFeaturehttps://docs.aspose.com/slides/net/manage-hyperlinks/
SLIDESNET-43281PDF 1.7 supportFeaturehttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43178Supporting PDF/A-2u compliance level for PDF exportFeaturehttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-42675PDF/A-2a standard compliance level for PDF exportFeaturehttps://docs.aspose.com/slides/net/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESNET-41958Support for exporting to PDF using PDF/A3 complianceFeaturehttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-37423Support to render PDF v 1.7 with compliance PDF/A 3BFeaturehttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-36753Create video of animated slideFeature
SLIDESNET-24332Rendering presentation transitions like videoFeature
SLIDESNET-43391Loading a 35 MB presentation file consumes 1 GB memoryInvestigationhttps://docs.aspose.com/slides/net/open-presentation/#open-large-presentation
SLIDESNET-43445Don’t load image in memory when PresentationLockingBehavior is KeepLockedEnhancementhttps://docs.aspose.com/slides/net/open-presentation/
SLIDESNET-43091A relative link is returned as an absolute linkEnhancementhttps://docs.aspose.com/slides/net/manage-ole/
SLIDESNET-43513PPTX to PDF: Invalid characters are shown in text editor after conversionBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43501System.NotImplementedException: Equation script character with autofit throws exceptionBughttps://docs.aspose.com/slides/net/powerpoint-math-equations/
SLIDESNET-43498Exception when saving presentationBughttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-43490NotImplementedException on loading ppt presentationBughttps://docs.aspose.com/slides/net/open-presentation/#open-presentation
SLIDESNET-43483IndexOutOfRangeException is thrown when loading PPTBughttps://docs.aspose.com/slides/net/open-presentation/
SLIDESNET-43482PptxReadException is thrown when loading PPTXBughttps://docs.aspose.com/slides/net/open-presentation/
SLIDESNET-43475Aspose.Slides retrieves incorrect background gradient colorsBughttps://docs.aspose.com/slides/net/presentation-background/
SLIDESNET-43472Widescreen slide content does not display correctly when converting PPTX to HTMLBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-html/
SLIDESNET-43463Image is not properly displayed on page when converting PPTX to HTMLBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-html/
SLIDESNET-43462Presentation becomes corrupted after cloning slides to empty presentationBughttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-43458Text and images are rotated when converting PPTX to PDF/HTMLBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43453Graphic objects do not display correctly when converting slides to imagesBughttps://docs.aspose.com/slides/net/generating-a-thumbnail-from-a-slide-with-user-defined-dimensions/
SLIDESNET-43450Shape imported from SVG has wrong line width.Bughttps://docs.aspose.com/slides/net/image/#converting-svg-to-a-set-of-shapes
SLIDESNET-43433PPTX to PDF: Fonts not resolved correctlyBughttps://docs.aspose.com/slides/net/convert-powerpoint-to-pdf/
SLIDESNET-43431Table cells contain an entire source table when converting slides to imagesBughttps://docs.aspose.com/slides/net/convert-slide/
SLIDESNET-43405SmartArt 3D effect missing in generated PNGBug< https://docs.aspose.com/slides/net/convert-slide/#converting-slides-to-bitmap-and-saving-the-images-in-png>
SLIDESNET-43354Incorrect rendering of text with 3-d effect on LinuxBughttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-43278Chart data labels are missing when converting PPTX to PDF/PNGBughttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-43183Date and time format of Header&Footer is changed when converting PPT to PPTXBughttps://docs.aspose.com/slides/net/convert-ppt-to-pptx/
SLIDESNET-42567Content of slide thumbnail differs from content of presentation slideBughttps://docs.aspose.com/slides/net/powerpoint-math-equations/

Public API Changes

Convert PowerPoint Presentation to video with animations and transitions

We’ve added a new feature: PowerPoint presentation-to-video conversion. This feature includes:

  • animation of transitions between slides
  • shape animation
  • text animation

Aspose.Slides can now play presentations and generate a set of frames for an entire animation with a specific frame per second (FPS). Those frames can then be used to create a video through tools like FFmpeg.

This C# code demonstrates a presentation to video export operation with frames set at 30FPS:

const int FPS = 30;

using (Presentation presentation = new Presentation("animated.pptx"))
{
    using (var animationsGenerator = new PresentationAnimationsGenerator(presentation))
    using (var player = new PresentationPlayer(animationsGenerator, FPS))
    {
        player.FrameTick += (sender, args) =>
        {
            args.GetFrame().Save($"frame_{sender.FrameIndex}.png");
        };

        animationsGenerator.Run(presentation.Slides);
    }
}

The PresentationAnimationsGenerator class is a source that sequentially generates individual animation effects, which are then played back using the PresentationPlayer class. A FrameTick event is generated for each frame to allow you to save the current frame to disk or write the frame to a video stream.

PDF 1.7 and PDF 1.6 export support added

We implemented support for PDF export to formats 1.6 and 1.7:

  • PdfCompliance.Pdf16
  • PdfCompliance.Pdf17

This C# code demonstrates an export to PDF 1.7 operation:

using (Presentation presentation = new Presentation("pres.pptx"))
{
    presentation.Save("pres.pdf", SaveFormat.Pdf, new PdfOptions
    {
        Compliance = PdfCompliance.Pdf17
    });
}

PDF A2a, A2b, A2u, A3a and A3b compliance levels export support added

We implemented support for PDF export operations with A2a, A2b, A2u, A3a and A3b compliance levels:

  • PdfCompliance.PdfA2a
  • PdfCompliance.PdfA2b
  • PdfCompliance.PdfA2u
  • PdfCompliance.PdfA3a
  • PdfCompliance.PdfA3b

This C# code demonstrates an operation where a PDF is saved based on the PdfA2a compliance level:

using (Presentation presentation = new Presentation("pres.pptx"))
{
    presentation.Save("pres.pdf", SaveFormat.Pdf, new PdfOptions
    {
        Compliance = PdfCompliance.PdfA2a
    });
}

Sound, a new property, has been added to the Hyperlink class to represent the played sound of an hyperlink.

using (Presentation presentation = new Presentation("demo.pptx"))
{
    ISlide slide = presentation.Slides[0];
    
    // Gets the first shape hyperlink
    IHyperlink link = presentation.Slides[0].Shapes[0].HyperlinkClick;
       
    if (link.Sound != null)
    {
        // Extracts the hyperlink sound in byte array
        byte[] audioData = link.Sound.BinaryData;
    }
}

OLE object frame relative path to a linked file support added

We implemented a new ability that allows you to access and change the relative file path data for OleObjectFrame using the new LinkPathRelative property.

using (Presentation presentation = new Presentation("demo.ppt"))
{
    IOleObjectFrame oleFrame = presentation.Slides[0].Shapes[0] as IOleObjectFrame;
        ///
    if (oleFrame != null)
    {
        Console.WriteLine("The relative path: " + oleFrame.LinkPathRelative);
    } 
}

StopPreviousSound property added for animation effects

The StopPreviousSound property of the Effect class specifies whether the animation effect stops the previous sound.

using (Presentation presentation = new Presentation("demo.pptx"))
{
    // Gets the first effect of the first slide.
    IEffect firstSlideEffect = presentation.Slides[0].Timeline.MainSequence[0];
    
    // Gets the first effect of the second slide.
    IEffect secondSlideEffect = presentation.Slides[1].Timeline.MainSequence[0];
       
    if (firstSlideEffect.Sound != null)
    {
        // Changes the second effect Enhancements/Sound to "Stop Previous Sound"
        secondSlideEffect.StopPreviousSound = true;
    }
}

Get base placeholder support added

The Shape.GetBasePlaceholder method has been added. It returns a basic placeholder shape (shape from the layout and/or master slide that the current shape is inherited from).

This C# code shows you how to get all (master/layout/slide) animated effects of a placeholder shape:

using (Presentation pres = new Presentation("sample.pptx"))
{
    ISlide slide = pres.Slides[0];
    IShape shape = slide.Shapes[0];
    IEffect[] shapeEffects = slide.LayoutSlide.Timeline.MainSequence.GetEffectsByShape(shape);

    IShape layoutShape = shape.GetBasePlaceholder();
    IEffect[] layoutShapeEffects = slide.LayoutSlide.Timeline.MainSequence.GetEffectsByShape(layoutShape);

    IShape masterShape = layoutShape.GetBasePlaceholder();
    IEffect[] masterShapeEffects = slide.LayoutSlide.MasterSlide.Timeline.MainSequence.GetEffectsByShape(masterShape);
}