Java Word中的文本、图片替换功能
Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换。以下将要介绍的内容,除常见的以文本替换文本外,还将介绍使用不同对象进行替换的方法,具体可包括:
1. 指定字符串内容替换文本(通过方法replce(matchString, newValue, caseSensitive, wholeWord );直接指定替换的新字符串内容)
2. 获取文档内容替换文本(通过方法replace(String matchString, TextSelection textSelection, boolean caseSensitive, boolean wholeWord);替换指定文本)
3. 图片替换文本
4. 图片替换图片
使用工具及jar导入:
需要使用 Free Spire.Doc for Java 的jar包,可手动下载并解压导入Spire.Doc.jar文件到Java程序,也可以通过maven仓库下载导入。
【示例1】指定字符串内容替换文本
import com.spire.doc.*;
public class ReplaceTextWithText {
public static void main(String[] args) {
//加载文档
Document doc = new Document();
doc.loadFromFile("test.docx");
//要替换第一个出现的指定文本,只需在替换前调用setReplaceFirst方法来指定只替换第一个出现的指定文本
//doc.setReplaceFirst(true);
//调用方法用新文本替换原文本内容
doc.replace("系统测试", "System Testing", false, true);
//保存文档
doc.saveToFile("ReplaceAllText.docx",FileFormat.Docx_2013);
doc.dispose();
}
}

【示例2】获取文档内容替换文本
import com.spire.doc.*;
import com.spire.doc.documents.TextSelection; public class ReplaceTextWithDocument {
public static void main(String[] args) {
//加载文档1
Document doc1 = new Document();
doc1.loadFromFile("test.docx"); //加载文档2
Document doc2 = new Document();
doc2.loadFromFile("TargetFile.docx");
//查找文档2中的指定内容
TextSelection textSelection = doc2.findString("Falling under the scope of black box testing, " +
"system testing is a phase in the software " +
"testing cycle where a total and integrated" +
" application /system is tested.",false,false); //用文档2中查找到的内容替换文档1中的指定字符串
doc1.replace("System Test, ST",textSelection,false,true); //保存文档1
doc1.saveToFile("ReplaceTextWithDocument.docx",FileFormat.Docx_2013);
doc1.dispose();
}
}
两个用于测试的文档如下,将文档2中的文本内容替换文档1中的指定文本内容:

替换结果:

【示例3】图片替换文本
import com.spire.doc.*;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange; public class ReplaceTextWithImg {
public static void main(String[] args) {
//加载文档
Document doc = new Document("test.docx");
//查找需要替换的字符串
TextSelection[] textSelection = doc.findAllString("系统测试",true,false);
int index ; //加载图片替换文本字符串
for (Object obj : textSelection) {
TextSelection Selection = (TextSelection)obj;
DocPicture pic = new DocPicture(doc);
pic.loadImage("tp.png");
TextRange range = Selection.getAsOneRange();
index = range.getOwnerParagraph().getChildObjects().indexOf(range);
range.getOwnerParagraph().getChildObjects().insert(index,pic);
range.getOwnerParagraph().getChildObjects().remove(range);
}
//保存文档
doc.saveToFile("ReplaceTextWithImage.docx", FileFormat.Docx_2013);
doc.dispose();
}
}

【示例4】图片替换图片
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture; public class ReplacePictureWithPicture {
public static void main(String[] args) {
//加载Word文档
Document doc = new Document();
doc.loadFromFile("sample.docx"); //获取文档中的指定段落
Section section = doc.getSections().get(0);
Paragraph para = section.getParagraphs().get(0);
//替换段落中的第一张图片
Object obj = para.getChildObjects().get(0);
if(obj instanceof DocPicture){
DocPicture pic = (DocPicture)obj;
pic.loadImage("tp.png");
} /*//批量替换图片
for(int i =0;i < section.getParagraphs().getCount();i++){
Object obj = section.getParagraphs().get(i).getChildObjects();
if(obj instanceof DocPicture){
DocPicture pic = (DocPicture)obj;
pic.loadImage("tp.png");
}
}*/ //保存结果文档
doc.saveToFile("ReplaceWithImage.docx", FileFormat.Docx_2013);
doc.dispose();
}
}

(完)
Java Word中的文本、图片替换功能的更多相关文章
- Java 提取Word中的文本和图片
本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java ...
- Java 添加、删除、替换、格式化Word中的文本(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...
- word中批量修改图片大小的两个方法
前言: 对于把ppt的内容拷贝到word中: 对ppt的一页进行复制,然后粘贴到word中 如果要的是ppt运行过程中的内容,在qq运行的情况下,按Ctrl+Alt+A截屏,按勾,然后可以直接粘贴到w ...
- word中创建文本框
word中创建文本框 在插入中点击"文本框"选项卡,例如以下图所看到的: 手工加入自己想要的文本框格式,然后选择所创建的文本框,在工具栏处会发现多了一 ...
- 在word中粘贴的图片为什么显示不完整
一.背景 整理系统测试说明文档,截得图片粘贴到word中显示不完整. 二.错误问题 问题:在word中粘贴的图片为什么显示不完整,如图所示: 三.分析问题: 原因是原来设置的行间距是固定值,图片也作一 ...
- Java 读取Word文本框中的文本/图片/表格
Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...
- [word]用Word2007查找和替换功能批量设置图片位置
Word2007的"查找和替换"功能并不仅仅可以对文字进行批量的查找替换,还有很多神奇的功能,比如对插入的图片位置进行批量的查找和调整等等. 今天我们就来试试Word2007的&q ...
- 使用openxml提取word中的文本和图片并转为Html
使用openxml提取word中的文本和图片 使用 openXml 提取 word 中的 Text 和 Drawing 使用 openXml 将 word 中的文本和图片转为Html 使用 openX ...
- ueditor上粘贴从word中copy的图片和文字
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...
随机推荐
- 数据库——数据库SQL语句大全,最常用的SQL语句
检索数据 检索单个列: SELECT pname FROM product 检索多个列: SELECT pname,market_price,is_hot FROM product 检索所有列: SE ...
- 搜索+简单dp
前言:即使是简单的递归,在复杂度过高时也可以使用简单的dp. 一般有两种情况,一是利用dp思想求最优子结构进行搜索剪枝,二是利用搜索进行dp数组的填充. 例题一.hdu1978 题目大意:这是一个简单 ...
- P1620 漂亮字串
\(核心思路就是分情况讨论\) 从整体上对题目进行分析,此题共有三种情况: (1)0 有一方为0,则结果为另一方的max: 两方都为0,则结果为0: (2)一方多,另一方不够用,满足\((contx+ ...
- python执行脚本报错: Non-ASCII character '\xe4' in file yang.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
这是因为我们在写python程序的时候,无论在注释里面出现中文,还是在代码里面出现中文,也就是说只要这个python程序里面有中文,我们就不能直接用python2来进行执行,如果安装是python3可 ...
- AbstractList源码分析
AbstractList 1 类图 2 字段 // 默认容量 private static final int DEFAULT_CAPACITY = 10; // 共享的空数组 private sta ...
- 5.7.17版本mysqlbinlog实时拉取的二进制日志不完整的原因分析
问题描述: 同事使用mysqlbinlog工具的--read-from-remote-server --raw选项,从远程实例实时拉取二进制日志时,发现得到的二进制日志文件大小与远程实例上的源文件大小 ...
- JVM-Java内存区域与内存溢出异常
第二章:Java内存区域与内存溢出异常 2.1 运行时数据区 1:程序计数器 : 线程私有,较小的内存空间,当前线程所执行的字节码的行号指示器,唯一不会发生错误的内存区域 2:虚拟机栈: 线程私有, ...
- Mysql 常用函数(12)- left 函数
Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html left 的作用 返回字符串 str 中最左边的 ...
- SpringMvc 你该知道如何在HandlerExceptionResolver中获取Model
在项目开发中,我们通常通过参数的形式注入Model对象,如: @RequestMapping("/demo") public String demo(Model model) { ...
- ClickHouse基本操作(二)
一.先来说一下,ClickHouse为啥快 MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快: ClickHouse不支持事务,不存在 ...