Java 提取Word中的文本和图片
程序员文章站
2022-04-19 10:33:37
本文将介绍通过Java来提取或读取Word文档中文本和图片的方法。这里提取文本和图片包括同时提取文档正文当中以及页眉、页脚中的的文本和图片。 使用工具:Free Spire.Doc for Java (免费版) Jar文件导入方法(参考): 方法1:下载jar文件包。下载后解压文件,并将lib文件夹 ......
本文将介绍通过java来提取或读取word文档中文本和图片的方法。这里提取文本和图片包括同时提取文档正文当中以及页眉、页脚中的的文本和图片。
使用工具:free spire.doc for java (免费版)
jar文件导入方法(参考):
方法1:下载jar文件包。下载后解压文件,并将lib文件夹下的spire.doc.jar文件导入到java程序。导入效果参考如下:
方法2:可通过maven导入。参考。
测试文档如下:
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(); } } } }
文本提取结果:
【示例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); } } }
图片提取结果:
(本文完)
转载请注明出处!
上一篇: Servlet与Tomcat运行示例
下一篇: App跟web定位元素页面相互切换
推荐阅读