Spire.Doc for Java 12.3.1 adds multiple new features

2024-03-08 09:08:46

We are excited to announce the release of Spire.Doc for Java 12.3.1. This version adds multiple new features, such as determining whether a digital signature exists for a document and setting field properties when updating a field. Besides, it also optimizes the file size of the resulting document of Word to OFD conversion. More details are listed below.

Here is a list of changes made in this release

Category ID Description
Improvement SPIREDOC-10325 Optimizes the file size of the resulting document of Word to OFD conversion.
New feature - Adds the setImageLink() in MergeImageFieldEventArgs event to support adding hyperlinks to the mail merge images.
Document document = new Document();
 document.loadFromFile(inputFile);
 String[] fieldNames = new String[]{"ImageFile"};
 String[] fieldValues = new String[]{inputFile_img};
 document.getMailMerge().MergeImageField = new MergeImageFieldEventHandler() {
     @Override
     public void invoke(Object sender, MergeImageFieldEventArgs args) {
         mailMerge_MergeImageField(sender, args);
     }
 };
 document.getMailMerge().execute(fieldNames, fieldValues);
 document.saveToFile(outputFile, FileFormat.Docx);
private static void mailMerge_MergeImageField(Object sender, MergeImageFieldEventArgs field) {
    String filePath = field.getImageFileName();
    if (filePath != null && !"".equals(filePath)) {
        try {
            field.setImage(filePath);
            field.setImageLink("https://www.baidu.com/");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
New feature SPIREDOC-9369 Adds the getFieldOptions() method to support setting field properties when updating a field.
document.getFieldOptions().setCultureSource(FieldCultureSource.CurrentThread);
New feature - Adds the hasDigitalSignature() method to support determining whether a document has a digital signature.
Document.hasDigitalSignature("filepath");
New feature SPIREDOC-9455 Adds the integrateFontTableTo method to support copying Fonttable data from source document to target document.
sourceDoc.integrateFontTableTo(Document destDoc);
New feature SPIREDOC-9869 Adds the HtmlUrlLoadEvent event to support the control of loading URLs in the file when loading HTML files.
public static void main(String[] args) {
    Document document = new Document();
    document.HtmlUrlLoadEvent = new MyDownloadEvent();
    document.loadFromFile(inputFile, FileFormat.Html, XHTMLValidationType.None);
    document.saveToFile(outputFile, FileFormat.PDF);
}
static class MyDownloadEvent extends HtmlUrlLoadHandler {
    @Override
    public void invoke(Object o, HtmlUrlLoadEventArgs htmlUrlLoadEventArgs) {
        try {
            byte[] bytes = downloadBytesFromURL(htmlUrlLoadEventArgs.getUrl());
            htmlUrlLoadEventArgs.setDataBytes(bytes);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
public static byte[] downloadBytesFromURL(String urlString) throws Exception {
    URL url = new URL(urlString);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.setConnectTimeout(5000);
    connection.setReadTimeout(5000);
    int responseCode = connection.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_OK) {
        InputStream inputStream = connection.getInputStream();
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        outputStream.close();
        return outputStream.toByteArray();
    } else {
        throw new Exception("Failed to download content. Response code: " + responseCode);
    }
}
New feature - Adds the setCustomFonts(InputStream[] fontStreamList) method to support setting custom fonts by stream.
document.setCustomFonts(InputStream[] fontStreamList);
New feature - Replaces the clearCustomFontsFolders() method with the new clearCustomFonts() method.
document.clearCustomFonts();
New feature - Replaces the setGlobalCustomFontsFolders(InputStream[] fontStreamList) method with the new setGlobalCustomFonts(InputStream[] fontStreamList) method.
Document.setGlobalCustomFonts(InputStream[] fontStreamList);
New feature - Replaces the clearGlobalCustomFontsFolders() method with the new clearGlobalCustomFonts() method.
Document.clearGlobalCustomFonts();
Click the link below to download Spire.Doc for Java 12.3.1: