Java-Word中的文本图片替换功能

36次阅读

共计 3074 个字符,预计需要花费 8 分钟才能阅读完成。

Word 中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换。以下将要介绍的内容,除常见的以文本替换文本外,还将介绍不同对象间相互替换的方法,具体可包括:

1. 指定字符串内容替换文本(通过方法 replce(matchString, newValue, caseSensitive, wholeWord); 直接指定替换的新字符串内容)

2. 获取文档内容替换文本(通过方法 replace(String matchString, TextSelection textSelection, boolean caseSensitive, boolean wholeWord); 替换指定文本)

3. 图片替换文本

4. 图片替换图片

需要使用 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();

}

}

【示例 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 文档
外汇经纪商对比 http://www.fx61.com/brokerlist

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();

}

}

正文完
 0