Browse our Products

Aspose.Slides for Java 17.3 Release Notes

KeySummaryCategory
SLIDESNET-38440Get audio/video rendered as audio/video in HtmlFeature
SLIDESNET-38431Support for adding Asopse.Slides.xml file in nuget packageFeature
SLIDESNET-38361Support of detection Microsoft PowerPoint 95 presentationsFeature
SLIDESNET-38192Support to get chart external data source workbook pathFeature
SLIDESNET-37586Getting actual absolute X,Y values for chart data pointsFeature
SLIDESNET-34526Support for adding line in chart areaFeature
SLIDESNET-38426Create new chart base on style of existing chartFeature
SLIDESNET-37469Extracting Excel table data in presentation as Text in XPSFeature
SLIDESJAVA-35959Loading fonts from jar fileFeature
SLIDESJAVA-35764Get Max value of vertical axis on a chartFeature
SLIDESJAVA-35703High Memory consumption while converting pptx to pdfBug
SLIDESJAVA-35397Problem while translating the pdf generated by Aspose.SlidesBug
SLIDESJAVA-36055Missing font exceptionBug
SLIDESJAVA-36043When PPT file is saved as PDF, the percentage sign goes on the wrong sideBug
SLIDESJAVA-36042Font loader not workingBug
SLIDESJAVA-35825Text being overlapped with ImageBug
SLIDESJAVA-35687Missing characters in converted svgBug
SLIDESJAVA-35589Embedded fonts are not considered when generating slide imagesBug
SLIDESJAVA-35177Transitions appear on ppt load and saveBug
SLIDESJAVA-35176Animations lost on ppt load and saveBug
SLIDESJAVA-34032Category axis labels are missing or improperly rendered in generated PDFBug

Public API Changes

getActualMaxValue, getActualMinValue, getActualMajorUnit, getActualMinorUnit, getActualMajorUnitScale, getActualMinorUnitScale have been added to com.aspose.slides.Axis and IAxis

  • double getActualMaxValue() Gets actual maximum value on the axis.
  • double getActualMinValue()  Gets actual minimum value on the axis.
  • double getActualMajorUnit() Gets actual major unit of the axis.
  • double getActualMinorUnit() Gets actual minor unit of the axis.
  • /TimeUnitType/ int getActualMajorUnitScale()       Gets actual major unit scale of the axis.
  • /TimeUnitType/ int getActualMinorUnitScale()       Gets actual minor unit scale of the axis.

Call method IChart.validateChartLayout() previously to get actual values for these properties.

final Presentation pres = new Presentation();
try
{
    Chart chart = (Chart) pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 100, 100, 500, 350);
    chart.validateChartLayout();

    double maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue();
    double minValue = chart.getAxes().getVerticalAxis().getActualMinValue();

    double majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit();
    double minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit();
}
finally { ((IDisposable)pres).dispose(); }

getActualX, getActualY, getActualWidth, getActualHeight have been added to com.aspose.slides.IChartPlotArea, ChartPlotArea

  • float getActualX()      Gets actual X location (left) of the chart element relative to the left top corner of the chart. Call method IChart.validateChartLayout() before to get actual values.
  • float getActualY()      Gets actual top of the chart element relative to the left top corner of the chart. Call method IChart.validateChartLayout() before to get actual values.
  • float getActualWidth()           Gets actual width of the chart element. Call method IChart.validateChartLayout() before to get actual values.
  • float getActualHeight()          Gets actual height of the chart element. Call method IChart.validateChartLayout() before to get actual values.

Call method IChart.validateChartLayout() previously to get actual values for these properties.

final Presentation pres = new Presentation();
try {
    Chart chart = (Chart) pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
    chart.validateChartLayout();

    double x = chart.getPlotArea().getActualX();
    double y = chart.getPlotArea().getActualY();
    double w = chart.getPlotArea().getActualWidth();
    double h = chart.getPlotArea().getActualHeight();
}
finally { ((IDisposable)pres).dispose(); }

getDataSourceType and getExternalWorkbookPath have been added to com.aspose.slides.IChartData, ChartData

Two new getters have been added to IChartData interface and ChartData class:

  • DataSourceType of ChartDataSourceType enum, which represents data source of the chart.
  • ExternalWorkbookPath of type string, which represents external workbook path if data source is external, null otherwise.
  • ChartDataSourceType is a new enum which represents the two values: InternalWorkbook and ExternalWorkbook.

Example:

final Presentation pres = new Presentation("pres.pptx");
try
{
    ISlide slide = pres.getSlides().get_Item(1);
    IChart chart = (IChart)slide.getShapes().get_Item(0);
    /*ChartDataSourceType*/ int sourceType = chart.getChartData().getDataSourceType();
    if (sourceType == ChartDataSourceType.ExternalWorkbook)
    {
        String path = chart.getChartData().getExternalWorkbookPath();
    }
}
finally { ((IDisposable)pres).dispose(); }

com.aspose.slides.IActualLayout interface has been added

Methods of IActualLayout provide information about actual position of parent chart element. It is necessary to call method IChart.validateChartLayout() previously to fill properties with actual values.

final Presentation pres = new Presentation();
try {
    Chart chart = (Chart) pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
    chart.validateChartLayout();

    double x = chart.getPlotArea().getActualX();
    double y = chart.getPlotArea().getActualY();
    double w = chart.getPlotArea().getActualWidth();
    double h = chart.getPlotArea().getActualHeight();
}
finally { ((IDisposable)pres).dispose(); }

Method validateChartLayout() has been added to com.aspose.slides.IChart interface and Chart class

Calculates actual values of chart elements. The actual values include position of elements that implement IActualLayout interface (IActualLayout.getActualX, IActualLayout.getActualY, IActualLayout.getActualWidth, IActualLayout.getActualHeight) and actual axes values (IAxis.getActualMaxValue, IAxis.getActualMinValue, IAxis.getActualMajorUnit, IAxis.getActualMinorUnit, IAxis.getActualMajorUnitScale, IAxis.getActualMinorUnitScale).

final Presentation pres = new Presentation();
try {
    Chart chart = (Chart) pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
    chart.validateChartLayout();

    double x = chart.getPlotArea().getActualX();
    double y = chart.getPlotArea().getActualY();
    double w = chart.getPlotArea().getActualWidth();
    double h = chart.getPlotArea().getActualHeight();
}
finally { ((IDisposable)pres).dispose(); }

New method loadExternalFont has been added to com.aspose.slides.FontsLoader class

The new method LoadExternalFont has been added to FontsLoader class:

  • public static void LoadExternalFont(byte[] data)

This method allows to add font from the binary data.

// loading presentation uses SomeFont which is not installed on the system
final Presentation pres = new Presentation("pres.pptx");
try
{
    // load SomeFont from file into the byte array
    byte[] fontData = File.readAllBytes("fonts\SomeFont.ttf");
    // load font represented as byte array
    FontsLoader.loadExternalFont(fontData);
    // font SomeFont will be available during the rendering or other operations
}
finally { ((IDisposable)pres).dispose(); }

Ppt95 value has been added to com.aspose.slides.LoadFormat enumeration

The new Ppt95 value has been added to LoadFormat enumeration. This value represents Microsoft PowerPoint 95 presentation format.

Code snippet to check whether the presentation format is old Microsoft PowerPoint 95:

boolean isOldFormat = PresentationFactory.getInstance().getPresentationInfo(path).getLoadFormat() == LoadFormat.Ppt95;