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 objectFeature
SLIDESNET-43424Getting embedded audio file from hyperlinkClick settingsFeature
SLIDESNET-43281PDF 1.7 supportFeature
SLIDESNET-43178Supporting PDF/A-2u compliance level for PDF exportFeature
SLIDESNET-42675PDF/A-2a standard compliance level for PDF exportFeature
SLIDESNET-41958Support for exporting to PDF using PDF/A3 complianceFeature
SLIDESNET-37423Support to render PDF v 1.7 with compliance PDF/A 3BFeature
SLIDESNET-36753Create video of animated slideFeature
SLIDESNET-24332Rendering presentation transitions like videoFeature
SLIDESNET-43391Loading a 35 MB presentation file consumes 1 GB memoryInvestigation
SLIDESNET-43445Don’t load image in memory when PresentationLockingBehavior is KeepLockedEnhancement
SLIDESNET-43091A relative link is returned as an absolute linkEnhancement
SLIDESNET-43513PPTX to PDF: Invalid characters are shown in text editor after conversionBug
SLIDESNET-43501System.NotImplementedException: Equation script character with autofit throws exceptionBug
SLIDESNET-43498Exception when saving presentationBug
SLIDESNET-43490NotImplementedException on loading ppt presentationBug
SLIDESNET-43483IndexOutOfRangeException is thrown when loading PPTBug
SLIDESNET-43482PptxReadException is thrown when loading PPTXBug
SLIDESNET-43475Aspose.Slides retrieves incorrect background gradient colorsBug
SLIDESNET-43472Widescreen slide content does not display correctly when converting PPTX to HTMLBug
SLIDESNET-43463Image is not properly displayed on page when converting PPTX to HTMLBug
SLIDESNET-43462Presentation becomes corrupted after cloning slides to empty presentationBug
SLIDESNET-43458Text and images are rotated when converting PPTX to PDF/HTMLBug
SLIDESNET-43453Graphic objects do not display correctly when converting slides to imagesBug
SLIDESNET-43450Shape imported from SVG has wrong line width.Bug
SLIDESNET-43433PPTX to PDF: Fonts not resolved correctlyBug
SLIDESNET-43431Table cells contain an entire source table when converting slides to imagesBug
SLIDESNET-43405SmartArt 3D effect missing in generated PNGBug<>
SLIDESNET-43354Incorrect rendering of text with 3-d effect on LinuxBug
SLIDESNET-43278Chart data labels are missing when converting PPTX to PDF/PNGBug
SLIDESNET-43183Date and time format of Header&Footer is changed when converting PPT to PPTXBug
SLIDESNET-42567Content of slide thumbnail differs from content of presentation slideBug

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) =>


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);