1、准备一个已经创建好的Word邮件合并模板,如图:
2、导入jar包,如下图:
3、Java 示例代码如下,添加文本合并域和图片合并域来合敛财醣沁并文本数据和图片。import com.spire.doc.*; import com.spire.doc.report足毂忍珩ing.MergeImageFieldEventArgs; import com.spire.doc.reporting.MergeImageFieldEventHandler; import java.text.SimpleDateFormat; import java.util.Date; public class MailMerge { public static void main(String[] args) throws Exception{ //创建Document实例,并加载邮件合并模板文档 Document document = new Document(); document.loadFromFile("template.docx"); //按文本合并域名称,设置合并域的文本值 Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = formatter.format(currentTime); String[] textFieldNames = new String[]{"Name", "Email Address", "Date"}; String[] textFieldValues = new String[]{"亚当斯密", "[email protected]", dateString}; //合并文本到模板 document.getMailMerge().execute(textFieldNames,textFieldValues ); //按图片合并域名称,设置图片路径值 String[] imageFieldNames = new String[]{"image"}; String[] imageFieldValues = new String[]{"logo.jpg"}; //调用邮件合并事件加载图片 document.getMailMerge().MergeImageField = new MergeImageFieldEventHandler() { public void invoke(Object sender, MergeImageFieldEventArgs args) { mailMerge_MergeImageField(sender, args); } }; //执行邮件合并 document.getMailMerge().execute(imageFieldNames, imageFieldValues); //保存文档 document.saveToFile("result.docx", FileFormat.Docx); } //创建邮件合并事件用于加载图片 private static void mailMerge_MergeImageField(Object sender, MergeImageFieldEventArgs field) { String filePath = (String) field.getFieldValue(); if (!filePath.isEmpty()) { field.setImage(filePath); } } }
4、执行程序,合并文本和图片,如下效果: