Aspose.Slides for Java 22.10 Release Notes

Key Summary Category Related Documentation
SLIDESNET-35636 Add the support of 3D shadow effects Feature https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-35634 Add the support of 3D bevel effects Feature https://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-35907 Set Transparent Effect for picture as filled shape in presentation file Enhancement https://docs.aspose.com/slides/net/manage-placeholder/#set-placeholder-image-transparency
SLIDESNET-43437 Compress presentation - embedded fonts Enhancement
SLIDESNET-43310 Changing color of leader lines in Pie charts Feature https://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESJAVA-38296 Use Aspose.Slides for Net 22.10 features Enhancement
SLIDESJAVA-38883 PDF produced by Aspose.Slides and edited by PDFBOX cannot be opened. Bug https://docs.aspose.com/slides/java/convert-powerpoint-to-pdf/
SLIDESJAVA-38891 Saving a presentation after cloning slide throws NegativeArraySizeException Bug https://docs.aspose.com/slides/java/clone-slides/
SLIDESJAVA-38780 Image is getting distorted while creating PDF out of PPT Bug https://docs.aspose.com/slides/java/create-chart/

Public API Changes

Our Maven repository URL has been changed

The Maven repository has been migrated from https://repository.aspose.com/repo/ to https://releases.aspose.com/java/repo/. Please, update all your settings and scripts accordingly.

ISVGOptions.UseFrameSize and ISVGOptions.UseFrameRotation have been added

New methods getUseFrameSize, setUseFrameSize, getUseFrameRotation and setUseFrameRotation have been added to the ISVGOptions interface and SVGOptions class.

The getUseFrameSize and setUseFrameSize methods determines whether the text frame will be included in a rendering area.

Methods declaration:

/**
 * <p>
 * Determines whether the text frame will be included in a rendering area or not.
 * Read/write {@code boolean}.
 * Default value is false.
 * </p>
 */
public boolean getUseFrameSize();
/**
 * <p>
 * Determines whether the text frame will be included in a rendering area or not.
 * Read/write {@code boolean}.
 * Default value is false.
 * </p>
 */
public void setUseFrameSize(boolean value);

The getUseFrameRotation and setUseFrameRotation methods determines whether to perform the specified rotation of the shape when rendering.

Methods declaration:

/**
 * <p>
 * Determines whether to perform the specified rotation of the shape when rendering or not.
 * Read/write {@code boolean}.
 * Default value is true.
 * </p>
 */
public boolean getUseFrameRotation();
/**
 * <p>
 * Determines whether to perform the specified rotation of the shape when rendering or not.
 * Read/write {@code boolean}.
 * Default value is true.
 * </p>
 */
public void setUseFrameRotation(boolean value);

The code snippet below demonstrates using these methods:

Presentation pres = new Presentation("pres.pptx");
try {
    SVGOptions svgOptions = new SVGOptions();

    // Does not perform the specified rotation of the shape while rendering to SVG.
    svgOptions.setUseFrameRotation(false);

    // Include the text frame in a rendering area while rendering to SVG.
    svgOptions.setUseFrameSize(true);

    // Save shape to SVG
    FileOutputStream stream = new FileOutputStream("output.svg");
    try {
        pres.getSlides().get_Item(0).getShapes().get_Item(0).writeAsSvg(stream, svgOptions);
    } finally {
        if (stream != null) stream.close();
    }
} catch(IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

Embedded fonts compress feature has been added

Embedded fonts can be compressed to decrease the size of the presentation that contains such fonts. To provide this functionality, the Compress.compressEmbeddedFonts method has been added to LowCode API.

Below is the snippet demonstrating compression:

Presentation pres = new Presentation("pres.pptx");
try {
    Compress.compressEmbeddedFonts(pres);
    pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

LeaderLinesColor have been added

The getLeaderLinesColor and setLeaderLinesColor methods have been addded to IDataLabelCollection interface and DataLabelCollection class, now the color of all leader lines in the collection can be changed:

Presentation pres = new Presentation("pres.pptx");
try {
    IChart chart = (IChart) pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IChartSeriesCollection series = chart.getChartData().getSeries();
    IDataLabelCollection labels = series.get_Item(0).getLabels();

    labels.setLeaderLinesColor(Color.RED);
} finally {
    if (pres != null) pres.dispose();
}