0
votes

I want to perform mail merge functionality in java using dot/dotx and doc/docx format documents. I tried using docx4j but it removes much rich text indentation from the documents.

I also tried fetching out some of the html content from the word document but couldnt able to repaste in word document.

public static void readDocxFile1(String fileName) {
    //  this.file = file;

    try {
        File file = new File(fileName);
        FileInputStream finStream=new FileInputStream(file.getAbsolutePath()); 
        HWPFDocument doc=new HWPFDocument(finStream);
        WordExtractor wordExtract=new WordExtractor(doc);
        Document newDocument = DocumentBuilderFactory.newInstance() .newDocumentBuilder().newDocument();
        WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(newDocument) ;
        wordToHtmlConverter.processDocument(doc);

        StringWriter stringWriter = new StringWriter();
        Transformer transformer = TransformerFactory.newInstance().newTransformer();

        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
        transformer.setOutputProperty(OutputKeys.METHOD, "html");
        transformer.transform(new DOMSource( wordToHtmlConverter.getDocument()), new StreamResult( stringWriter ) );

        String html = stringWriter.toString();
        System.out.println("html>>>>>>"+html);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

My requirement is that I have to (1) read a dot/dotx or doc/docx template and for the no. of people looping it to (2) replace the keywords and then (3) repasting it in the new document.

Please suggest a way how can I perform this feature.

Also please suggest if ASPOSE.WORDS API for JAVA will do this for me.

1

1 Answers

0
votes

Yes, you can meet these requirements using Aspose.Words for Java API. I would suggest you please refer to the following sections of documentation:

I work with Aspose as Developer Evangelist.