本文将介绍通过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"); //获取文本保存为StringString text = doc.getText(); //将String写入TxtwriteStringToTxt(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); //获取图片并添加到Listif (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);}}
}

图片提取结果:

在此我向大家推荐一个架构学习交流圈。交流学习微信:539413949(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

Java 提取Word中的文本和图片相关推荐

  1. java提取word中的文字_Java 提取Word中的文本和图片

    本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java ...

  2. openxml html to word,C# Net 使用 openxml 提取word中的文本和图片并转为Html

    C# Net Core openxml 提取 提出 取 word  文本  图片 Html Text Drawing C# Net Core openxml 提取 提出 取 word  文本  图片 ...

  3. java提取word中的图片_Java怎么获取Word批注的文字和图片

    Java怎么获取Word批注的文字和图片 发布时间:2020-06-23 11:07:08 来源:亿速云 阅读:119 作者:Leah 这篇文章将为大家详细讲解有关Java获取Word批注的文字和图片 ...

  4. Java 读取PDF中的文本和图片

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Java ...

  5. Java Word中的文本、图片替换功能

    Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换.以下将要介绍的内容,除常见的以文本替换文本外,还将介绍使用不同对象进行替换的方法,具体可包括: 1. 指定字符串内容替换文本 ...

  6. java提取word中的图片

    一.项目中需要用到word的导入,word 里面的内容由图片,文本,公式等,步骤为:将文档另存为xml格式 1.提取图片,如下是word xml 中的图片标签,具体分析下内容,首先需要获取 w:dra ...

  7. java word替换图片_Java Word中的文本、图片替换功能

    Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换.以下将要介绍的内容,除常见的以文本替换文本外,还将介绍使用不同对象进行替换的方法,具体可包括: 1. 指定字符串内容替换文本 ...

  8. java提取word中的文字,java获取word里面的文本

    需求场景 开发的web办公系统如果需要处理大量的Word文档(比如有成千上万个文档),用户一定提出查找包含某些关键字的文档的需求,这就要求能够读取 word 中的文字内容,而忽略其中的文字样式.表格. ...

  9. 使用docx4j根据书签自动替换word中的文本和图片,图片自适应大小

    此功能中的文本替换实现不难,但是图片替换和自适用费了很大劲,主要是要知道word文档的原理,实际是一个zip 的压缩包,里面包括图片信息和xml文件等等,主要就是看xml中的对应关系,大家可以试着把w ...

最新文章

  1. myeclipse 6.0 弹出 Multiple Errors have Occurred 错误
  2. 多线程编程实战(一)
  3. mysql删除过期文件_关于保留最新文件或清除过期文件的简单总结
  4. 2012腾讯春季实习生面试经历(一)
  5. int *ptr=(int *)(a+1)问题的探讨
  6. Cf Round #403 B. The Meeting Place Cannot Be Changed(二分答案)
  7. Origin Pro轻松绘制小提琴图
  8. 用Setup Factory打包Visual C++ 2008开发的程序心得总结
  9. stl中map函数_map :: max_size()函数,以及C ++ STL中的Example
  10. jquery 给类名元素添加行内样式_学Jquery的第一天
  11. Cocos2d BMFont解析
  12. 一步一步学VBScript(4)之WSH对象三
  13. 9. Document getElementsByName() 方法
  14. 个人博客系统整体介绍
  15. Flutter第3天--基础控件(上)
  16. Git 使用过程中遇到的问题以及解决办法
  17. 将爬取的实习僧网站数据传入HDFS
  18. canvas - 基础知识 - 绘制剪纸图形
  19. 前台请求后台接口数据后日期少一天Bug解决
  20. 【大数据开发】SparkStreaming——DStream输入源、原语、SparkStream与Kafka和Redis三者的交互

热门文章

  1. 梅科尔工作室-深度学习第三讲
  2. 王者荣耀服务器几点能维护好,王者荣耀7.4更新维护到几点 更新了怎么进不去游戏...
  3. Android面试送分题:这份354页笔记的Android进阶知识+大厂高频面试题,已拿offer
  4. IT项目管理那些事儿
  5. dockers达梦镜像启动执行sql脚本
  6. linux以root登陆命令,su命令和sudo命令,以及限制root用户登录
  7. avi和音频合成 ffmpeg_音视频处理工具FFmpeg与Java结合的简单使用
  8. OpenGL学习脚印:缓冲对象相关函数的使用(buffer object function)
  9. Mysql可重复读业务场景_事务可重复读的意义在哪?
  10. 科技感ui界面 html,技术实现丨如何增强UI页面的科技感