public static Document getDocument(Document documentTemplateWithMergeFields, int x, int y, List mergeFields, LocalDate onDate, String exportDocumentName, DocumentExporter.Format exportFormat) { File mergedFile = new File("D:\\"+exportDocumentName); Document outputDoc = Document.getNewInstance(); try { WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new ByteArrayInputStream(documentTemplateWithMergeFields.getContent(true))); Map item = getMergeFieldMapping(AC, targetAC, mergeFields, onDate); //MailMerger.setMERGEFIELDInOutput(OutputField.DEFAULT); MailMerger.performMerge(wordMLPackage, item, true); //wordMLPackage.setContentType(new ContentType(org.docx4j.openpackaging.contenttype.ContentTypes.WORDPROCESSINGML_DOCUMENT)); try(FileOutputStream fileOutputStream = new FileOutputStream(mergedFile)) { wordMLPackage.save(fileOutputStream); // To debug // readFileDocx(mergedFile); outputDoc.setDocumentFile(mergedFile); } } catch (Docx4JException | IOException e) { } return outputDoc; }