Microsoft Word 提供了许多易于使用的文档操作工具,同时也提供了丰富的功能集供创建复杂的文档使用。在使用的时候,你可能需要复制一个文档里面的内容到另一个文档。本文介绍使用Spire.Doc for Java通过编程的方式来复制Word文档的方法,复制的内容可支持包括文本、图片、表格、超链接、书签、批注、形状、编号列表、脚注、尾注等等在内的多种元素。


程序环境

本次测试时,在程序中引入Spire.Doc for Java。可通过以下方法引用Spire.Doc.jar文件:

方法1:将Spire.Doc for Java下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的Spire.Doc.jar。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的jar文件添加引用至程序。

方法2:使用Maven进行安装,你可以通过在项目的pom.xml文件中添加以下代码,在你的应用程序中轻松导入该JAR文件。

            com.e-iceblue        e-iceblue         https://repo.e-iceblue.cn/repository/maven-public/                e-iceblue        spire.doc        10.9.0      

方法3:通过NuGet安装。可通过以下2种方法安装:

(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“FreeSpire.Doc”,点击“安装”。等待程序安装完成。

(2)将以下内容复制到PM控制台安装。

Install-Package FreeSpire.Doc-Version 10.9.0

复制Word文档

  • 创建一个Document实例和一个目标文档Document实例。
  • 使用Document.loadFromFile()方法加载示例 Word 文档。
  • 遍历获取要复制的内容。
  • 使用DocumentObjectCollection.add()方法将原文本的内容复制到目标文档。
  • DocumentObject.deepClone()创建文件目标的副本。
  • 使用saveToFile()方法保存目标文档。

代码示例

import com.spire.doc.*;public class CopyDoc {    public static void main(String[] args) {        //加载文档1        Document doc1 = new Document();        doc1.loadFromFile("input.docx");        //加载文档2        Document doc2 = new Document();        doc2.loadFromFile("target.docx");        //遍历文档1中的所有子对象        for (int i = 0; i < doc1.getSections().getCount(); i++) {            Section section = doc1.getSections().get(i);            for( int j = 0;j< section.getBody().getChildObjects().getCount();j++)            {                Object object = section.getBody().getChildObjects().get(j);                //复制文档1中的正文内容添加到文档2                doc2.getSections().get(0).getBody().getChildObjects().add(((DocumentObject) object).deepClone());            }        }        //保存文档2        doc2.saveToFile("CopyDoc.docx", FileFormat.Docx_2013);        doc2.dispose();    }}

  Word示例文档如下,将左边的文档内容复制到右边的

Word文档复制结果如下:

—THE END—