Aspose.Slides for Java 22.10 Release Notes

KeySummaryCategoryRelated Documentation
SLIDESNET-35636Add the support of 3D shadow effectsFeaturehttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-35634Add the support of 3D bevel effectsFeaturehttps://docs.aspose.com/slides/net/3d-presentation/
SLIDESNET-35907Set Transparent Effect for picture as filled shape in presentation fileEnhancementhttps://docs.aspose.com/slides/net/manage-placeholder/#set-placeholder-image-transparency
SLIDESNET-43437Compress presentation - embedded fontsEnhancement
SLIDESNET-43310Changing color of leader lines in Pie chartsFeaturehttps://docs.aspose.com/slides/net/powerpoint-charts/
SLIDESJAVA-38296Use Aspose.Slides for Net 22.10 featuresEnhancement
SLIDESJAVA-38883PDF produced by Aspose.Slides and edited by PDFBOX cannot be opened.Bughttps://docs.aspose.com/slides/java/convert-powerpoint-to-pdf/
SLIDESJAVA-38891Saving a presentation after cloning slide throws NegativeArraySizeExceptionBughttps://docs.aspose.com/slides/java/clone-slides/
SLIDESJAVA-38780Image is getting distorted while creating PDF out of PPTBughttps://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();
}