本文将介绍通过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);

}

}

}

图片提取结果:

java提取word中的文字_Java 提取Word中的文本和图片相关推荐

  1. EXCEL-VBA(WORD):将EXCEL中的文字替换到Word中的文字

    Dim WordApp As Object Set WordApp = CreateObject("Word.Application") WordApp.Visible = Tru ...

  2. java 保留字符串中的数字_java从字符串中提取数字

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...

  3. java解析pdf 图片文字_Java 读取PDF中的文本和图片

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

  4. java设置标签艺术字体颜色_Java 在Word文档中添加艺术字

    与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...

  5. java全文检索word中的内容_java获取word里面的文本

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

  6. java 取字符串中的数字_java截取字符串中的数字

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...

  7. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍

    java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...

  8. java里面比较重要的东西_Java面向对象程序设计中很重要的一些东西

    面向对象具有多方面的吸引力.对于管理人员,它实现了更快和更廉价的开发与维护过程.对于分析与设计人员,能生成清晰.易于维护的设计方案.对于程序开发人员,对象的理解又是如此浅显.此外,面向对象的工具以及类 ...

  9. java去重复元素并打印_Java打印数组中重复元素

    Java打印数组中重复元素 1 说明 在此程序中,我们需要打印数组中存在的重复元素.这可以通过两个循环来完成.第一个循环将选择一个元素,第二个循环将通过将所选元素与其他元素进行比较来遍历整个数组.如果 ...

最新文章

  1. 笔试题——max pooling滑动窗口实现(python 代码)
  2. 看完JDK并发包源码的这个性能问题,我惊了!
  3. 从零单排Java 8(2) —— Timestamp、String互转
  4. First Post
  5. c++,static 静态成员变量 / 静态成员函数
  6. Git/小白从零开始篇
  7. 【终极方法】解决IDEA搜索不到Lombok插件的问题(IDEA 不能识别 @Slf4j,@Getter ,@Setter注解)
  8. 如何学习微信公众平台的开发?
  9. java 分页 不 排序_java - 我应该如何将未分页但已排序的Pageable传递给Spring JPA存储库? - 堆栈内存溢出...
  10. 2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!
  11. laravel操作$request中值删除、增加、替换等方式的代码实例
  12. 神奇的applycall
  13. Java编程中忽略这些细节,Bug肯定找上你
  14. 网络编程学习记录-1
  15. LeetCode 567. 字符串的排列 (滑动窗口哈希表)
  16. 《PMP学习笔记》4.6 子过程:监控项目工作
  17. BiLSTM-CRF模型理解
  18. HTML emoji
  19. 一个很难的sql面试题
  20. java-php-python-ssm企业员工考勤系统的设计与实现计算机毕业设计

热门文章

  1. luov之windows 常用端口详解
  2. Windows API一日一练(2)使用应用程序句柄
  3. web.config总结
  4. 配置PIX515E DMZ的基本方法与故障排除
  5. Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系
  6. Druid 常见问题
  7. MyEclipse使用总结——使用MyEclipse打包带源码的jar包
  8. echarts在.Net中使用实例(一) 简单的Demo
  9. Android开发七 Android中的显示单位
  10. JAVA中int、String的类型转换(亲测)