Browse our Products

Aspose.Slides for Java 21.9 Release Notes

KeySummaryCategoryRelated Documentation
SLIDESNET-38994Getting automatic table cells fill colorFeaturehttps://docs.aspose.com/slides/net/manage-table/
SLIDESNET-40508Slow slide cloning performance in Aspose.SlidesEnhancementhttps://docs.aspose.com/slides/net/clone-slides/
SLIDESNET-42579Getting the number of worksheets in a workbookEnhancementhttps://docs.aspose.com/slides/net/chart-workbook/
SLIDESJAVA-36426Text missing after saving pptBughttps://docs.aspose.com/slides/java/save-presentation/
SLIDESJAVA-33558Glow effects are lost in generated PDF/HTMLBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-35688Missing Smart Art on Notes MasterBughttps://docs.aspose.com/slides/java/manage-smartart/
SLIDESJAVA-36390Getting automatic table cells fill colorFeaturehttps://docs.aspose.com/slides/java/manage-table/
SLIDESJAVA-35312SmartArt shapes lost after load and saveBughttps://docs.aspose.com/slides/java/manage-smartart/
SLIDESJAVA-38615PPTX to PNG: Multi threading conversion losing textInvestigationhttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-38551EMF images are not showing when converting PPTX to PDFBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-33560Reflection effects are lost for shapes in PDF/HTMLBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-38564Text becomes non-bold after converting presentation to SVGBughttps://docs.aspose.com/slides/java/render-a-slide-as-an-svg-image/
SLIDESJAVA-38244Use Aspose.Slides for Net 21.9 featuresEnhancement
SLIDESJAVA-38595Slides merging is producing misaligned contentBughttps://docs.aspose.com/slides/java/clone-slides/
SLIDESJAVA-36881Slide Content missing on saving pptBughttps://docs.aspose.com/slides/java/save-presentation/
SLIDESJAVA-28870Animation sequence changed after portion text changedBughttps://docs.aspose.com/slides/java/powerpoint-animation/
SLIDESJAVA-38585Text missing in generated PDF when using FontsLoader.loadExternalFontBughttps://docs.aspose.com/slides/java/custom-font/#specify-custom-fonts-used-with-presentation
SLIDESJAVA-37298Slow slide cloning performance in Aspose.SlidesEnhancementhttps://docs.aspose.com/slides/java/clone-slides/
SLIDESJAVA-33559Shadow effects are lost for shapes in PDF/HTMLBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-31771Text and shadow improperly rendered in thumbnailBughttps://docs.aspose.com/slides/java/convert-slide/#convert-slide-to-bufferedimage
SLIDESJAVA-33774Shadow effects lost in generated PDFBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-33942Text effects are missing in generated PDFBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf
SLIDESJAVA-36698Fill format not being returned for slidesBughttps://docs.aspose.com/slides/java/manage-table/
SLIDESJAVA-37397Thumbnails not properly generated from pptxBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-38575Duotone effective exception on accessing colorBughttps://docs.aspose.com/slides/java/shape-effective-properties/
SLIDESJAVA-38572Exception on accessing solid fill colorBughttps://docs.aspose.com/slides/java/shape-effective-properties/
SLIDESJAVA-34369Font Shadow is not coming fine in the generated PDF fileBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-34560System exception is thrown on exporting PPTX to PDFBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf/
SLIDESJAVA-35551ArrayIndexOutOfBoundsException on loading ODP presentationBughttps://docs.aspose.com/slides/java/convert-openoffice-odp/
SLIDESJAVA-34940Get table cell text and fill color is not working for presentationBughttps://docs.aspose.com/slides/java/manage-table/
SLIDESJAVA-34988Saving odp as odp eats up all memoryBughttps://docs.aspose.com/slides/java/convert-openoffice-odp/
SLIDESJAVA-33713The shape connectors are improperly rendered in generated thumbnailsBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-jpg/
SLIDESJAVA-33800Wrong text rendering in thumbnails and PdfBughttps://docs.aspose.com/slides/java/convert-powerpoint-ppt-and-pptx-to-pdf

Public API Changes

HTML5 Export Support

We implemented support for HTML5 Export in Slides (enhanced customizable version of HTML5 Support).

The new Html5 value has been added to SaveFormat enumerations. This value represents the HTML5 format for exporting.

The code snippet below demonstrates the saving presentation in HTML5 operation:

Presentation presentation = new Presentation("SomePresentation.pptx");
try {
	presentation.save("index.html", SaveFormat.Html5);
} finally {
	if (presentation != null) presentation.dispose();
}

Using the Html5Options configuration, you can export a presentation containing slides transitions, animations, and shapes animations to HTML5:

Presentation pres = new Presentation("demo.pptx");
try {
	Html5Options html5Options = new Html5Options();
	html5Options.setAnimateShapes(true);
	html5Options.setAnimateTransitions(true);

	pres.save("demo-animate.html", SaveFormat.Html5, html5Options);
} finally {
	if (pres != null) pres.dispose();
}

Access to the ChartDataWorksheetCollection has been added

To provide access to worksheets, we added the IChartDataWorksheetCollection interface, ChartDataWorksheetCollection class, and IChartDataWorkbook.getWorksheets() method.

Presentation pres = new Presentation();
try {
	IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Pie, 50, 50, 400, 500);

	IChartDataWorkbook workbook =  chart.getChartData().getChartDataWorkbook();
	for (int i = 0; i < workbook.getWorksheets().size(); i++)
	{
		System.out.println(workbook.getWorksheets().get_Item(i).getName());
	}
} finally {
	if (pres != null) pres.dispose();
}

IAccessiblePVIObject interface has been added

IAccessiblePVIObject interface has been added. It represents a type that can be a source of an effective version of its data.

IAccessiblePVIObject declaration:

/**
 * <p>
 * Represents a type that can return corresponding effective data with the inheritance applied.
 * </p><p>Type of effective data.</p>
 */
public interface IAccessiblePVIObject<T>
{
    /**
     * <p>
     * Gets effective data with the inheritance applied.
     * </p>
     * @return An effective data object.
     */
    public T getEffective();
}

Currently, all effect types implement the IAccessiblePVIObject interface—and this means you can get effective values for effects with styled colors resolved.

This code demonstrates an operation where we added a picture for a slide background, added Duotone effect with styled colors, and then we got the effective duotone colors with which the background will be rendered:

Presentation presentation = new Presentation();
try {
    byte[] imageBytes = Files.readAllBytes(Paths.get("someimage.png"));
    IPPImage backgroundImage = presentation.getImages().addImage(imageBytes);

    presentation.getSlides().get_Item(0).getBackground().setType(BackgroundType.OwnBackground);
    presentation.getSlides().get_Item(0).getBackground().getFillFormat().setFillType(FillType.Picture);
    presentation.getSlides().get_Item(0).getBackground().getFillFormat().getPictureFillFormat().
            getPicture().setImage(backgroundImage);

    IDuotone duotone = presentation.getSlides().get_Item(0).getBackground().getFillFormat().
            getPictureFillFormat().getPicture().getImageTransform().addDuotoneEffect();

    duotone.getColor1().setColorType(ColorType.Scheme);
    duotone.getColor1().setSchemeColor(SchemeColor.Accent1);
    duotone.getColor2().setColorType(ColorType.Scheme);
    duotone.getColor2().setSchemeColor(SchemeColor.Dark2);

    IDuotoneEffectiveData duotoneEffective = duotone.getEffective();

    System.out.println("Duotone effective color1: " + duotoneEffective.getColor1());
    System.out.println("Duotone effective color2: " + duotoneEffective.getColor2());
} catch(IOException e) {
} finally {
    if (presentation != null) presentation.dispose();
}