Java 在Word中实现邮件合并文本和图片

2025-10-28 00:16:29

1、准备一个已经创建好的Word邮件合并模板,如图:

Java 在Word中实现邮件合并文本和图片

2、导入jar包,如下图:

Java 在Word中实现邮件合并文本和图片

3、Java 示例代码如下,添加文本合并域和图片合并域来合并文本数据和图片。

import com.spire.doc.*;

 

import com.spire.doc.reporting.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[]{"亚当斯密", "123456@163.com", 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、执行程序,合并文本和图片,如下效果:

Java 在Word中实现邮件合并文本和图片

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢