Java 读取Word文本框中的文本、图片、表格

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java 读取Word文本框中的文本/图片/表格

Word可插入文本框,文本框中可嵌入文本、图片、表格等内容。对文档中的已有文本框,也可以读取其中的内容。本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本、图片以及表格等。

【程序环境】

程序编辑环境为IntelliJ IDEA,并在程序中引入了free Spire.Doc.jar 3.9.0,安装的Jdk版本为1.8.0。

【源文档】

程序中用于测试的Word源文档如下图:

【程序代码】

1.读取文本框中的文本

import com.spire.doc.*;

import com.spire.doc.documents.Paragraph;

import com.spire.doc.fields.TextBox;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

public class ExtractText {

public static void main(String[] args) throws IOException {

//加载含有文本框的Word文档

Document doc = new Document();

doc.loadFromFile("sample.docx");

//获取文本框

TextBox textbox = doc.getTextBoxes().get(0);

//保存文本框中的文本到指定文件

File file = new File("ExtractedText.txt");

if (file.exists())

{

file.delete();

}

file.createNewFile();

FileWriter fw = new FileWriter(file, true);

BufferedWriter bw = new BufferedWriter(fw);

//遍历文本框中的对象

for (Object object:textbox.getBody().getChildObjects()) {

//判定是否为文本段落

if(object instanceof Paragraph)

{

//获取段落中的文本

String text = ((Paragraph) object).getText();

//写入文本到txt文档

bw.write(text);

}

}

bw.flush();

bw.close();

fw.close();

}

}

2.读取文本框中的图片

import com.spire.doc.*;

import com.spire.doc.documents.Paragraph;

import com.spire.doc.fields.DocPicture;

import com.spire.doc.fields.TextBox;

import javax.imageio.ImageIO;

import java.awt.image.RenderedImage;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

public class ExtractImg {

public static void main(String[] args) throws IOException {

//加载含有文本框的Word文档

Document doc = new Document();

doc.loadFromFile("sample.docx");

//获取文本框

TextBox textbox = doc.getTextBoxes().get(0);

//创建List对象

List images = new ArrayList();

//遍历文本框中所有段落

for (int i = 0 ; i < textbox.getBody().getParagraphs().getCount();i++) {

Paragraph paragraph = textbox.getBody().getParagraphs().get(i);

//遍历段落中的所有子对象

for (int j = 0; j < paragraph.getChildObjects().getCount(); j++) {

Object object = paragraph.getChildObjects().get(j);

//判定对象是否为图片

if (object instanceof DocPicture)

{

//获取图片

DocPicture picture = (DocPicture) object;

images.add(picture.getImage());

}

}

}

//将图片以PNG文件格式保存

相关文档
最新文档