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文件。

<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>10.9.0</version>
</dependency>
</dependencies>  

方法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---

Java复制Word文档的更多相关文章

  1. 使用Java生成word文档(附源码)

    当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...

  2. Java解析word文档

    背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何解析word文档. 因为系统如果无法智能的解析word,那么就只能通过其他方式手动录入word内容,效率低下,而且人工成本和录入出错率 ...

  3. JAVA添加WORD文档批注

    本文将介绍在Java程序中如何给Word文档中的指定字符串添加批注.前文中,主要介绍的是针对某个段落来添加批注,以及回复.编辑.删除批注的方法,如果需要针对特定关键词或指定字符串来设置批注,可以参考本 ...

  4. poi读写word模板 / java生成word文档

    有一word文档表格 形如: 姓名 ${name} 电话 ${tel} 从数据库读取记录替换上述变量 import java.io.FileOutputStream; import java.util ...

  5. Java生成 Word文档的并打印解决方案

    户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...

  6. Java生成word文档

    itext-rtf-2.1.7.jar,下载地址:http://download.csdn.net/detail/xuxu198899223/7717727 itext-2.1.7.jar 下载地址: ...

  7. Java 处理word文档后在前端展示

    最新新开发的这个项目需要使用word文档并要求能在前端页面上带格式展示,由于项目不是内部使用,所以不考虑插件类的处理模式,都必须要本地处理完成,前端不需要做什么更新或者说安装就能直接访问,类似于百度文 ...

  8. Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包

    可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...

  9. 整理关于Java进行word文档的数据动态数据填充

    首先我们看下,别人整理的关于Java生成doc 的 资料. java生成word的几种方案 1. Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用 ...

随机推荐

  1. 基础算法学习以及$STL$的使用

    1.优先队列 (1)大根堆(小顶堆) priority_queue<int,vector<int>,greater<int> >q; (2)小根堆(大顶堆) pri ...

  2. 获取字典中values值中最大的数,返回对应的keys

    1.字典中键值对的获取 print(data.values()) # 查看字典的值 print(data.keys()) # 查看字典的key 2.对字典中的值进行排序 sorted(data.val ...

  3. python在管道中执行命令

    简介 在实际开发中,可能在执行命令过程中,需要在命令的管道中输入相应命令后继续执行,因此需要在执行命令后在命令的管道中输入相应指令 方法一 直接使用communicate向管道传入所需指令,注意如果是 ...

  4. CSp2021/ NOIp2021 游记

    目录 Part 1. CSp2021 J S Part 2. NOIp2021 总结 Part 1. CSp2021 J 好水 挂飞 239pts,1= S 好毒瘤 rnm,写了个暴力就去搞 T2 \ ...

  5. Frame双向通信插件FrameDataTrans

    FrameDataTrans教程 博客园 乳鸽菌 20220729 核心原理是使用postMessage发送数据,window.addEventListener("message" ...

  6. 干货分享:小技巧大用处之Bean管理类工厂多种实现方式

    前言:最近几个月很忙,都没有时间写文章了,今天周末刚好忙完下班相对早点(20:00下班)就在家把之前想总结的知识点写出来,于是就有了这篇文章.虽无很高深的技术,但小技巧有大用处. 有时我们经常需要将实 ...

  7. YII的延迟加载

    类的映射表 use app\model\order \Yii::$classMap['app\models\Order'] = "D:\wamp\www\...\models\Order.p ...

  8. Odoo14 js 怎么获取图片url链接

    上内部代码: 1 _getImageURL: function (model, field, id, placeholder) { 2 id = (_.isArray(id) ? id[0] : id ...

  9. 使用.NET简单实现一个Redis的高性能克隆版(三)

    译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单.高性能兼容Redis协议的数据库的经历. 首先这个"Redis"是非常简单的实现,但是他 ...

  10. 基于vue2.0原理-自己实现MVVM框架之computed计算属性

    基于上一篇data的双向绑定,这一篇来聊聊computed的实现原理及自己实现计算属性. 一.先聊下Computed的用法 写一个最简单的小demo,展示用户的名字和年龄,代码如下: <body ...