本文将介绍通过java来提取或读取word文档中文本和图片的方法。这里提取文本和图片包括同时提取文档正文当中以及页眉、页脚中的的文本和图片。

使用工具:freespire.doc for java (免费版)

jar文件导入方法(参考):

方法1:

a537baceb47daa4286b8b2d0f60e5241.png

方法2:可通过maven导入。参考。

测试文档如下:

9ac41524e9917ae44b524af1d6bfb8c6.png

java代码示例(供参考)

【示例1】提取word中的文本

import com.spire.doc.*;

import java.io.filewriter;

import java.io.ioexception;

public class extracttext {

public static void main(string[] args) throws ioexception{

//加载测试文档

document doc = new document();

doc.loadfromfile("test.docx");

//获取文本保存为string

string text = doc.gettext();

//将string写入txt

writestringtotxt(text,"提取文本.txt");

}

public static void writestringtotxt(string content, string txtfilename) throws ioexception {

filewriter fwriter= new filewriter(txtfilename,true);

try {

fwriter.write(content);

}catch(ioexception ex){

ex.printstacktrace();

}finally{

try{

fwriter.flush();

fwriter.close();

} catch (ioexception ex) {

ex.printstacktrace();

}

}

}

}

文本提取结果:

04e46decc51a934a7b283a2c34402e4c.png

【示例2】提取word中的图片

import com.spire.doc.document;

import com.spire.doc.documents.documentobjecttype;

import com.spire.doc.fields.docpicture;

import com.spire.doc.interfaces.icompositeobject;

import com.spire.doc.interfaces.idocumentobject;

import javax.imageio.imageio;

import java.awt.image.renderedimage;

import java.io.file;

import java.io.ioexception;

import java.util.arraylist;

import java.util.linkedlist;

import java.util.list;

import java.util.queue;

public class extractimg {

public static void main(string[] args) throws ioexception {

//加载word文档

document document = new document();

document.loadfromfile("test.docx");

//创建queue对象

queue nodes = new linkedlist();

nodes.add(document);

//创建list对象

list images = new arraylist();

//遍历文档中的子对象

while (nodes.size() > 0) {

icompositeobject node = (icompositeobject) nodes.poll();

for (int i = 0; i < node.getchildobjects().getcount(); i++) {

idocumentobject child = node.getchildobjects().get(i);

if (child instanceof icompositeobject) {

nodes.add((icompositeobject) child);

//获取图片并添加到list

if (child.getdocumentobjecttype() == documentobjecttype.picture) {

docpicture picture = (docpicture) child;

images.add(picture.getimage());

}

}

}

}

//将图片保存为png格式文件

for (int i = 0; i < images.size(); i++) {

file file = new file(string.format("图片-%d.png", i));

imageio.write((renderedimage) images.get(i), "png", file);

}

}

}

图片提取结果:

53faee805e7241560b63aec7dee09340.png

(本文完)

转载请注明出处!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐