Aspose.Slides for Java 21.6 Release Notes

Key Summary Category Related Documentation
SLIDESNET-42514 Support of Cylinder column shape for 3-D Column and 3-D Bar Charts Feature https://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-30675 Support of Presentation to XAML export Feature
SLIDESNET-42447 Support of 3-D Bar Chart Feature https://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESNET-37955 Support of 3D Transforms for thumbnails Feature https://docs.aspose.com/slides/net/3d-presentation/
SLIDESJAVA-38232 Use Aspose.Slides for Net 21.6 features Enhancement
SLIDESJAVA-38531 ArgumentException: Unable to find any font for: GenericFontFamilies.Serif Investigation https://docs.aspose.com/slides/java/custom-font/
SLIDESJAVA-33354 Improper rendering of 3d rotated shapes Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-32683 Unresolved Qumu issues Bug
SLIDESJAVA-34045 Text shadow effects are missing in generated thumbnail Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-34792 Blur shadow effects observed in thumbnail Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-38529 PPTX update chart values produces bad output file Bug https://docs.aspose.com/slides/java/chart-workbook/
SLIDESJAVA-36211 Incorrect font size in notes page Bug https://docs.aspose.com/slides/java/shape-effective-properties/
SLIDESJAVA-34569 Chart Borders are missing in generated PDF file Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-32322 Wrong shape direction on thumbnail Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-38549 Presentation.save method throws KeyNotFoundException Investigation https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-38546 Presentation to PDF conversion fails Investigation https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-38077 Replacing a MasterSlide with Gradient Background incurs “InvalidOperationException: Color is not resolved yet” Bug https://docs.aspose.com/slides/java/clone-slides/
SLIDESJAVA-33804 The image angle of rotation is discarded in generated PDF Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-33240 Shape Thumbnails for PPTX with transparet background Feature https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-33963 SmartArt is improperly rendered in generated PDF Bug https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-36381 3D shape effects are not rendered in PDF/PNG Feature https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-36382 Glow Effects are not rendered in PDF/PNG Feature https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-36383 Rotation Effects are not rendered in PDF/PNG Feature https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-36384 Reflection Effects are not rendered in PDF/PNG Feature https://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-38532 Error happens when convert PPT to PPTX Investigation https://docs.aspose.com/slides/java/convert-ppt-to-pptx/

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:

/**
 * <p>
 * Options that control how a XAML document is saved.
 * </p>
 */
public interface IXamlOptions extends ISaveOptions
{
    /**
	<p>
	Determines whether hidden slides will be exported.
	</p>
     */
    public boolean getExportHiddenSlides();
    /**
	<p>
	Determines whether hidden slides will be exported.
	</p>
     */
    public void setExportHiddenSlides(boolean value);
    
    /**
	<p>
	Represents an implementation of IOutputSaver interface.
	</p>
     */
    public IXamlOutputSaver getOutputSaver();
    /**
	<p>
	Represents an implementation of IOutputSaver interface.
	</p>
     */
    public void setOutputSaver(IXamlOutputSaver value);
}

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

/**
 * <p>
 * Saves all slides of a presentation to a set of files representing XAML markup.
 * </p>
 */
public final void save(IXamlOptions options)

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

Presentation pres = new Presentation("pres.pptx");
try {
    XamlOptions xamlOptions = new XamlOptions();
    xamlOptions.setExportHiddenSlides(true);
	
    pres.save(xamlOptions);
} finally {
    if (pres != null) pres.dispose();
}

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:

/**
 * <p>
 * Represents an output saver implementation for transfer data to the external storage.
 * </p>
 */
public interface IXamlOutputSaver
{
    /**
     * <p>
     * Saves a bytes array to a destination location.
     * </p>
     * @param path The destination path.
     * @param data A binary data for saving to a destination location.
     */
    public void save(String path, byte[] data);
}

IEffect.getTargetShape() method has been added

The IEffect.getTargetShape() method has been added. It returns the shape affected by the effect.

Method declaration:

/**
 * <p>
 * Returns target shape for effect.
 * Read-only {@link IShape}.
 * </p>
 */
public IShape getTargetShape();

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

Presentation pres = new Presentation("SomePresentation.pptx");
try {
    for (ISlide slide : pres.getSlides())
        for (IEffect effect : slide.getTimeline().getMainSequence())
            System.out.println(effect.getType() + " animation effect is set to shape#" + effect.getTargetShape().getUniqueId() + " on slide#" + slide.getSlideNumber());
} finally {
    if (pres != null) pres.dispose();
}