Spire.Office for Java 5.3.2 is released

2022-03-23 02:36:30

We are excited to announce the release of Spire.Office for Java 5.3.2. This version brings some new features. For instance, Spire.XLS for Java supports setting text direction for the chart category axis as well as sorting for a Table, and supports creating Waterfall Chart, Pareto Chart, Histogram Chart, BoxAndWhisker Chart, TreeMap Chart, SunBurst Chart, and Funnel Chart, it also enhances the conversion from Excel to image, Excel to PDF; Spire.PDF for Java supports converting PDF to a Grayscale document, and enhances the conversion from PDF to PDFA1B. Meanwhile, a lot of bugs have been successfully fixed. More details are listed as follow.

Click the link to download Spire.Office for Java 5.3.2:

Here is a list of changes made in this release

Spire.XLS for Java

Category ID Description
New feature SPIREXLS-3641 Supports setting text direction for the chart category axis.
chart.getPrimaryCategoryAxis().setTextDirection(TextVerticalValue.EastAsianVertical);
New feature SPIREXLS-3706 Supports sorting for a Table.
Workbook workbook = new Workbook();
workbook.loadFromFile(inputFile);
Worksheet sheet = workbook.getWorksheets().get(0);
// Add a new List Object to the worksheet
IListObject listObject = sheet.getListObjects().create("table", sheet.getCellRange(1, 1, 19, 5));
// Add Default Style to the table
listObject.setBuiltInTableStyle(TableBuiltInStyles.TableStyleLight9);
listObject.getAutoFilters().getSorter().getSortColumns().add(2, OrderBy.Ascending);
listObject.getAutoFilters().getSorter().sort(sheet.getCellRange(1, 1, 19, 5));
New feature - Supports creating the Waterfall Chart.
Workbookworkbook=newWorkbook();
workbook.loadFromFile("input.xlsx");
Worksheetsheet=workbook.getWorksheets().get(0);
ChartofficeChart=sheet.getCharts().add();
//Setcharttypeaswaterfall
officeChart.setChartType(ExcelChartType.WaterFall);
//Setdatarangetothechartfromtheworksheet
officeChart.setDataRange(sheet.getRange().get("A2:B8"));
//Datapointsettingsastotalinchart
officeChart.getSeries().get(0).getDataPoints().get(3).setAsTotal(true);
officeChart.getSeries().get(0).getDataPoints().get(6).setAsTotal(true);
//Showingtheconnectorlinesbetweendatapoints
officeChart.getSeries().get(0).getFormat().showConnectorLines(true);
//Setthecharttitle
officeChart.setChartTitle("CompanyProfit(inUSD)");
//Formattingdatalabelandlegendoption
officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8);
officeChart.getLegend().setPosition(LegendPositionType.Right);
workbook.saveToFile("output.xlsx",FileFormat.Version2016);
New feature - Supports creating the Pareto Chart.
Workbookworkbook=newWorkbook();
workbook.loadFromFile("input.xlsx");
Worksheetsheet=workbook.getWorksheets().get(0);
ChartofficeChart=sheet.getCharts().add();
//SetcharttypeasPareto
officeChart.setChartType(ExcelChartType.Pareto);
//Setdatarangeintheworksheet
officeChart.setDataRange(sheet.getRange().get("A2:B8"));
//Setcategoryvaluesasbinvalues
officeChart.getPrimaryCategoryAxis().isBinningByCategory(true);
officeChart.getPrimaryCategoryAxis().setOverflowBinValue(5);
officeChart.getPrimaryCategoryAxis().setUnderflowBinValue(1);;
//FormattingParetoline
officeChart.getSeries().get(0).getParetoLineFormat().getLineProperties().setColor(Color.blue);
//Gapwidthsettings
officeChart.getSeries().get(0).getDataFormat().getOptions().setGapWidth(6);
//Setthecharttitle
officeChart.setChartTitle("Expenses");
//Hidingthelegend
officeChart.hasLegend(false);
workbook.saveToFile("output.xlsx",FileFormat.Version2016);
New feature - Supports creating the Histogram Chart.
Workbookworkbook=newWorkbook();
workbook.loadFromFile("input.xlsx");
Worksheetsheet=workbook.getWorksheets().get(0);
ChartofficeChart=sheet.getCharts().add();
//Setcharttypeashistogram
officeChart.setChartType(ExcelChartType.Histogram);
//Setdatarangeintheworksheet
officeChart.setDataRange(sheet.getRange().get("A1:A15"));
//Categoryaxisbinsettings
officeChart.getPrimaryCategoryAxis().setBinWidth(8);
//Gapwidthsettings
officeChart.getSeries().get(0).getDataFormat().getOptions().setGapWidth(6);
//Setthecharttitleandaxistitle
officeChart.setChartTitle("HeightData");
officeChart.getPrimaryValueAxis().setTitle("Numberofstudents");
officeChart.getPrimaryCategoryAxis().setTitle("Height");
//Hidingthelegend
officeChart.hasLegend(false);
workbook.saveToFile("output.xlsx",FileFormat.Version2016);
New feature - Supports creating the BoxAndWhisker Chart.
Workbookworkbook=newWorkbook();
workbook.loadFromFile("input.xlsx");
Worksheetsheet=workbook.getWorksheets().get(0);
ChartofficeChart=sheet.getCharts().add();
//Setthecharttitle
officeChart.setChartTitle("YearlyVehicleSales");
//SetcharttypeasBoxandWhisker
officeChart.setChartType(ExcelChartType.BoxAndWhisker);
//Setdatarangeintheworksheet
officeChart.setDataRange(sheet.getRange().get("A1:E17"));
//BoxandWhiskersettingsonfirstseries
ChartSerieseriesA=officeChart.getSeries().get(0);
seriesA.getDataFormat().showInnerPoints(false);
seriesA.getDataFormat().showConnectorLines(true);
seriesA.getDataFormat().showMeanMarkers(true);
seriesA.getDataFormat().showMeanLine(false);
seriesA.getDataFormat().setQuartileCalculationType(ExcelQuartileCalculation.ExclusiveMedian);
//BoxandWhiskersettingsonsecondseries
ChartSerieseriesB=officeChart.getSeries().get(1);
seriesB.getDataFormat().showInnerPoints(false);
seriesB.getDataFormat().showConnectorLines(true);
seriesB.getDataFormat().showMeanMarkers(true);
seriesB.getDataFormat().showMeanLine(false);
seriesB.getDataFormat().setQuartileCalculationType(ExcelQuartileCalculation.InclusiveMedian);
//BoxandWhiskersettingsonthirdseries
ChartSerieseriesC=officeChart.getSeries().get(2);
seriesC.getDataFormat().showInnerPoints(false);
seriesC.getDataFormat().showConnectorLines(true);
seriesC.getDataFormat().showMeanMarkers(true);
seriesC.getDataFormat().showMeanLine(false);
seriesC.getDataFormat().setQuartileCalculationType(ExcelQuartileCalculation.ExclusiveMedian);
workbook.saveToFile("output.xlsx",FileFormat.Version2016);
New feature - Supports creating the TreeMap Chart.
Workbookworkbook=newWorkbook();
workbook.loadFromFile("input.xlsx");
Worksheetsheet=workbook.getWorksheets().get(0);
ChartofficeChart=sheet.getCharts().add();
//SetcharttypeasTreeMap
officeChart.setChartType(ExcelChartType.TreeMap);
//Setdatarangeintheworksheet
officeChart.setDataRange(sheet.getRange().get("A1:C11"));
//Setthecharttitle
officeChart.setChartTitle("Areabycountries");
//SettheTreemaplabeloption
officeChart.getSeries().get(0).getDataFormat().setTreeMapLabelOption(ExcelTreeMapLabelOption.Banner);
//Formattingdatalabels
officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8);
workbook.saveToFile("output.xlsx",FileFormat.Version2016);
New feature - Supports creating the SunBurst Chart.
Workbookworkbook=newWorkbook();
workbook.loadFromFile("input.xlsx");
Worksheetsheet=workbook.getWorksheets().get(0);
ChartofficeChart=sheet.getCharts().add();
//SetcharttypeasSunburst
officeChart.setChartType(ExcelChartType.SunBurst);
//Setdatarangeintheworksheet
officeChart.setDataRange(sheet.getRange().get("A1:D16"));
//Setthecharttitle
officeChart.setChartTitle("Salesbyannual");
//Formattingdatalabels
officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8);
//Hidingthelegend
officeChart.hasLegend(false);
workbook.saveToFile("output.xlsx",FileFormat.Version2016);
New feature - Supports creating the Funnel Chart.
Workbook workbook = new Workbook();
workbook.loadFromFile("input.xlsx");
Worksheet sheet = workbook.getWorksheets().get(0);
Chart officeChart = sheet.getCharts().add();
//Set chart type as Funnel
officeChart.setChartType(ExcelChartType.Funnel);
//Set data range in the worksheet
officeChart.setDataRange(sheet.getRange().get("A1:B6"));
//Set the chart title
officeChart.setChartTitle("Funnel");
//Formatting the legend and data label option
officeChart.hasLegend(false);
officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8);
workbook.saveToFile("output.xlsx", FileFormat.Version2016);
Bug SPIREXLS-3443
SPIREXLS-3575
SPIREXLS-3620
Fixes the issue that the content was incorrect after converting Excel to PDF.
Bug SPIREXLS-3612 Fixes the issue that the content was incorrect after converting Excel to image.
Bug SPIREXLS-3642 Fixes the issue that the obtained signature information were not correct.
Bug SPIREXLS-3653 Fixes the issue that the application threw "OutOfMemoryError" when saving an excel file.
Bug SPIREXLS-3664 Fixes the issue that the obtained formula values were incorrect.
Bug SPIREXLS-3650 Fixes the issue that the text position was incorrect after converting excel to image.
Bug SPIREXLS-3691 Fixes the issue that the application threw "NullPointerException" when appending a rich text.
Bug SPIREXLS-3692 Fixes the issue that the pagination was inconsistent after converting excel to PDF.
Bug SPIREXLS-3713 Fixes the issue that the application threw "NullPointerException" when copying a worksheet.
Bug SPIREXLS-3714 Fixes the issue that the application threw "NullPointerException" when calculating the PivotTable data.
Bug SPIREXLS-3725 Fixes the issue that it didn't take effect when setting "false" for chart.hasChartTitle().

Spire.Doc for Java

Category ID Description
Bug SPIREDOC-4423 Fixes the issue that the application threw "StackOverflowError" when updating Table of Contents.
Bug SPIREDOC-7199 Fixes the issue that the text position was incorrect after converting Word to PDF.
Bug SPIREDOC-7220
SPIREDOC-7419
Fixes the issue that the pagination was inconsistent after converting Word to PDF.
Bug SPIREDOC-7265 Fixes the issue that the lines were lost after converting Word to PDF.
Bug SPIREDOC-7278 Fixes the issue that the image was lost after converting Word to PDF.
Bug SPIREDOC-7315
SPIREDOC-7439
SPIREDOC-7440
Fixes the issue that the content was incorrect after converting Word to PDF.
Bug SPIREDOC-7318
SPIREDOC-7321
Fixes the issue that the content were lost after converting Word to PDF.
Bug SPIREDOC-7441 Fixes the issue that the image content was incorrect after converting Word to PDF.
Bug SPIREDOC-7444 Fixes the issue that the application threw "X509CertImpl" when using on IBM websphere.
Bug SPIREDOC-7458 Fixes the issue that the application threw "Unsupported file format" when converting Word to PDF.
Bug SPIREDOC-7477
SPIREDOC-7478
Fixes the issue that the checkbox was lost after converting Word to PDF.
Bug SPIREDOC-7497 Fixes the issue that the combination image was lost after converting Word to HTMLl.

Spire.PDF for Java

Category ID Description
New feature SPIREPDF-4915 Supports converting a pdf to a grayscale document.
PdfGrayConverter converter = new PdfGrayConverter("ConvertToGrayPdf.pdf");
converter.toGrayPdf("output.pdf");
Bug SPIREPDF-4741 Fixes the issue that the obtained ComBoxField item value was incorrect.
Bug SPIREPDF-4873 Optimizes the memory releasing issue when converting PDF to PDFA1B.
Bug SPIREPDF-4926 Fixes the issue that the application threw "String index out of range" when getting PDF used fonts.
Bug SPIREPDF-4949 Fixes the issue that the format was incorrect after setting middle for both vertical alignment and horizontal alignment.
Bug SPIREPDF-4956 Fixes the issue that the application threw "OutOfMemoryError" after compressing images.
Bug SPIREPDF-4967 Fixes the issue that the obtained PDF conformance was incorrect.
Bug SPIREPDF-4974 Fixes the issue that the application threw "NullPointerException" when getting PDF image information.

Spire.Presentation for Java

Category ID Description
Bug SPIREPPT-1797 Optimizes the time consumption when converting PPT file to PDF.
Bug SPIREPPT-1825 Fixes the issue that the obtained vertical alignment value of the text frame was incorrect.
Bug SPIREPPT-1832 Fixes the issue that the application threw "DocumentReadException" when loading a PPT file.
Bug SPIREPPT-1836
SPIREPPT-1849
Fixes the issue that the content was incorrect after converting PPT shape to image.
Bug SPIREPPT-1839 Fixes the issue that the application threw "Argument width" error when converting a PPT file to image.
Bug SPIREPPT-1847 Fixes the issue that the content was blank after converting PPT shape to image.
Bug SPIREPPT-1871 Fixes the issue that some characters were garbled after converting PPTX file to image.
Bug SPIREPPT-1873 Fixes the issue that the output was blank after converting shape to image.
Bug SPIREPPT-1881 Fixes the issue that the application hung a long time when converting shape to image.