Spire.Office for Java 4.4.6

Spire.Office for Java 4.4.6 is released

We are happy to announce the release of Spire.Office for Java 4.4.6. This version brings some new features, for example, Spire.XLS for Java supports adding and removing digital signature and adds a new method to customize paper size; Spire.Presentation for Java supports "distributeRows" and "distributeColumns" of the table; Spire.PDF for Java adds a new method to remove JavaScript scripts and so on. In addition, a lot of bugs have been successfully fixed. More details are listed as follows.

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

Here is a list of changes made in this release

Spire.XLS for Java

Category ID Description
New Feature - Supports loading excel files containing math-equation and saving them to PDF/Image/SVG/XPS etc.
New Feature - Supports adding/removing digital signature.
Workbook workbook=new Workbook();
workbook.loadFromFile("C:/sample.xlsx");
CertificateAndPrivateKey cap = new CertificateAndPrivateKey("C:/Test1.pfx","e-iceblue");
workbook.addDigitalSignature(cap, "e-iceblue",new Date());
String result="C:/result.xlsx";
workbook.saveToFile(result,ExcelVersion.Version2013);

Workbook workbook2=new Workbook();
workbook2.loadFromFile(result);
workbook2.removeAllDigitalSignatures();
String result2="C:/result2.xlsx";
workbook2.saveToFile(result2,ExcelVersion.Version2013);
New feature SPIREXLS-3218 Adds a new method "setCustomPaperSize" to customize  paper size.
workbook.getWorksheets().get(0).getPageSetup().setCustomPaperSize(100, 100);
Bug SPIREXLS-3130 Fixes the issue that color was not updated incorrectly while creating conditional date format.
Bug SPIREXLS-3136 Fixes the issue that the application threw java.lang.NullPointerException while hiding blank cells.
Bug SPIREXLS-3173 Fixes the issue that the content was incorrect after converting Excel to HTML.
Bug SPIREXLS-3174 Fixes the issue that the data was hidden after converting XLSX to XLSM.

Spire.PDF for Java

Category ID Description
New feature SPIREPDF-4194 Adds a new method to remove JavaScript scripts.
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile(input);
pdf.removeDocumentJavaScript();
pdf.saveToFile(output, FileFormat.PDF);
New feature SPIREPDF-4174 Supports returning all rectangular area information when searching for warp text.
PdfDocument doc = new PdfDocument(); doc.loadFromFile(inputFile); 
FileWriter fileWriter = new FileWriter(outputFile, true); 
int index=0; 
for (PdfPageBase page : (Iterable) doc.getPages())
 { 
index++; PdfTextFind[] results = page.findText("findtext", EnumSet.of(TextFindParameter.CrossLine)).getFinds(); 
for (PdfTextFind text : results) 
{ 
text.applyHighLight(); List bounds = text.getTextBounds();
 String context=""; 
for (Rectangle2D rectangle2D:bounds)
 { 
context +="current "+index+" page;content:"+text.getSearchText()+ ";X:="+rectangle2D.getX()+","+"Y:="+rectangle2D.getY()+","+ "Width:="+rectangle2D.getWidth()+","+"height:="+rectangle2D.getHeight()+"\r\n"; 
} System.out.println(context); fileWriter.write(context); fileWriter.flush(); 
} 
} fileWriter.close(); doc.saveToFile(outputPdf);
Bug SPIREPDF-4104 Fixes the issue that the extracted text was incorrect.
Bug SPIREPDF-3996 Fixes the issue that it consumed too much memory when adding watermarks to the document through a loop.
Bug SPIREPDF-4060 Fixes the issue that the content was overlapped when converting PDF to Word.
Bug SPIREPDF-4125 Fixed the issue that the application threw the error "Value cannot be null" when converting PDF to PDF/A-3B.
Bug SPIREPDF-4128 Fixed the issue that the application threw an exception when adding the watermark to PDF.
Bug SPIREPDF-4132 Fixed the issue that the generated file did not conform to the standard of PdfA1A after converting PDF to PDFA1A.
Bug SPIREPDF-4138 Fixed the issue that the content was incorrect after converting PDF to PDF/A.

Spire.Presentation for Java

Category ID Description
Optimization SPIREPPT-1099 Optimizes the time spent on inserting images.
New Feature SPIREPPT-1518 Adds the "distributeRows" and "distributeColumns" features of the table.
ISlide slide = presentation.getSlides().get(0);
ITable table = (ITable) slide.getShapes().get(0);
table.distributeRows(0,3);
table.distributeColumns(0,2);
Bug SPIREPPT-1521 Fixes the issue that it consumed lots of memory when converting PPTX to PDF.
Bug SPIREPPT-1523 Optimizes the consumed time of converting PPTX to PDF.
Bug SPIREPPT-1528 Fixes the issue that the application threw the error "ArrayIndexOutOfBoundsException" when extracting PPT images on CentOS.
Bug SPIREPPT-1533 Fixes the issue that the application threw the error "Property not found" when loading PPT files.
Bug SPIREPPT-1535 Fixes the issue that the content was incorrect after converting PPT to PDF.
Bug SPIREPPT-1538 Fixes the issue that the application threw the error "ArrayIndexOutOfBoundsException" when getting the chart data.