Java将两个word文档合并成一个文档

1.引入以下依赖

 
            org.docx4j
            docx4j
            6.1.2
        

如果JDK版本大于1.8以上则需要引入以下依赖,如果是1.8或以下的则不需要

 
            javax.xml.bind
            jaxb-api
            2.3.1
        
        
            com.sun.xml.bind
            jaxb-core
            2.3.0.1
        
        
            com.sun.xml.bind
            jaxb-impl
            2.3.2
        

2.准备好模板这里以一页封面一页内容为例

Java将两个word文档合并成一个文档_第1张图片Java将两个word文档合并成一个文档_第2张图片

3.执行以下代码

 public static void main(String[] args) throws Exception {
        // 加载封面文档
        WordprocessingMLPackage coverPackage = WordprocessingMLPackage.load(new File("D:\\upload\\test\\fm.docx"));

        // 加载正文文档
        WordprocessingMLPackage contentPackage = WordprocessingMLPackage.load(new File("D:\\upload\\test\\fm2.docx"));

        // 获取各自的 MainDocumentPart
        MainDocumentPart coverPart = coverPackage.getMainDocumentPart();
        MainDocumentPart contentPart = contentPackage.getMainDocumentPart();

        // 在两部分间插入分页符(可选)
        coverPart.addObject(createPageBreak());

        // 合并正文内容
        coverPart.getContent().addAll(contentPart.getContent());

        // 保存合并后的 Word 文档
        File output = new File("D:\\upload\\test\\merged.docx");
        coverPackage.save(output);

        System.out.println("文档合并成功,路径:" + output.getAbsolutePath());
    }
    
    // 插入分页符方法(docx4j 3.x 和 6.x 通用)
    private static org.docx4j.wml.Br createPageBreak() {
        org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory();
        org.docx4j.wml.Br breakObj = factory.createBr();
        breakObj.setType(org.docx4j.wml.STBrType.PAGE);
        return breakObj;
    }

4.执行效果

Java将两个word文档合并成一个文档_第3张图片

你可能感兴趣的:(word处理,java,word)