[转载]java获取word里面的文本

需求场景

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

方案分析

  方案一:使用Apache POI技术将所有服务器上文档的文本获取后存储到数据库,查找文档时利用sql语句检索数据中存储的文档文本是否包含关键字来搜索到相关文档。然而现在 microsoft word 有两种文档格式doc和docx,这两个版本存储数据的格式上都有相当大的差别。调研发现apache  POI针对doc和docx提供了两套不同的API接口,需要针对两种文档格式编写不同的代码,word文档自身格式复杂,读取word文档内容的代码会对服务器造成一定的压力,且无法实现让用户在线处理word文档。

  POI主页地址:https://poi.apache.org/

  方案二:使用PageOffice组件的FileSaver对象的getDocumentText方法,获取word文档中的纯文本内容,且如果调用PageOffice实现此功能的话,同时也可以实现word文件的在线编辑。

  

实现步骤

  1. 调用PageOffice在线打开word文件,比如:test.doc

PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);
//设置服务器页面
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
//设置保存页面为SaveFile.jsp,或SaveFile.do SaveFile.action 等action方法或RequestMapping方法均可
poCtrl.setSaveFilePage("SaveFile.jsp");
//打开Word文档
poCtrl.webOpen("doc/test.doc",OpenModeType.docNormalEdit,"Tom");

  2. 在处理保存操作的页面(SaveFile.jsp)或方法里执行保存文件和获取文档中纯文本内容的操作:

FileSaver fs=new FileSaver(request,response);
fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/")+"/"+fs.getFileName());//保存文件
String strDocumentText = fs.getDocumentText();//获取文档的纯文本内容,不带任何附加格式
// - 编写代码,保存文档的文本内容到数据库 - //
......
fs.close();

  3. 需要对全文检索的时候,只需对数据库中保存了word文件纯文本内容的数据库字段做SQL查询即可。

原文地址:https://www.cnblogs.com/qq742655/p/9024260.html

时间: 2024-08-29 07:25:58

[转载]java获取word里面的文本的相关文章

Java 提取Word中的文本和图片

本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java (免费版) Jar文件导入方法(参考): 方法1:下载jar文件包.下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入到java程序.导入效果参考如下: 方法2:可通过maven导入.参考导入方法. 测试文档如下: Java代码示例(供参考) [示例1]提取Word中的文本 im

[转载]java读写word文档,完美解决方案

做项目的过程中,经常需要把数据里里的数据读出来,经过加工,以word格式输出. 在网上找了很多解决方案都不太理想,偶尔发现了PageOffice,一个国产的Office插件,开发调用非常简单!比网上介绍的poi,jacob等解决方按容易上手多了!功能接口虽然没有poi,jacob那么多,但是满足了一般的需求的百分之八九十,而且不像poi那样还需要区分处理07格式和03格式那么麻烦. 下面是百度百科PageOffice的介绍: https://baike.baidu.com/item/PageOf

[转载]Java生成Word文档

在开发文档系统或办公系统的过程中,有时候我们需要导出word文档.在网上发现了一个用PageOffice生成word文件的功能,就将这块拿出来和大家分享. 生成word文件与我们编辑word文档本质上是相同的,只不过在用程序生成word文档的时候换成了用代码来操作.下面的例子中主要有添加标题,正文(段落.字体.字号.倍行间距.对齐方式.首行缩进等),插入图片等操作.这里写的例子给出的内容只是PageOffice 组件生成word文件的部分方法,需要使用更多方法的还是要自己根据实际的需求去查看AP

Java 操作Word书签(二):添加文本、图片、表格到书签内容

在Java操作Word书签(一)中介绍了给Word中的特定段落或文字添加书签.读取及删除已有书签的方法,本文将继续介绍Java 操作Word书签的方法,即如何给已有的书签添加内容,包括添加文本.图片.表格等. 使用工具:Free Spire.Doc for Java (免费版) Jar文件获取及导入: 方法1: 通过官网下载jar文件包.下载后,解压文件.并将lib文件夹下的Spire.Doc.jar文件导入到java程序.参考如下导入效果: 方法2:可通过maven仓库安装导入.可参考安装导入

Java 添加Word文本框

在Word中,文本框是指一种可移动.可调节大小的文字或图形容器.我们可以向文本框中添加文字.图片.表格等对象,下面,将通过Java编程来实现添加以上对象到Word文本框. 使用工具:Free Spire.Doc for Java (免费版) Jar文件获取及导入: 方法1:通过官网下载获取jar包.下载后,解压文件,并将lib文件夹下的Spire.Doc.jar文件导入Java程序.(如下图) 方法2:通过maven仓库安装导入. Java代码示例 import com.spire.doc.*;

Java阅读word程序说明文件

完成office文件操作可以帮助apache.poi包(我用poi-3.10-FINAL),导入对应的jar包(最好所有导入) 以下的程序演示了一些操作word的过程,具体的函数功能能够查看此包的官方API import java.io.*; import org.apache.poi.POIXMLDocument; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.*; import or

Java读取word文件的程序演示

完成对office文件的操作可以借助apache.poi包(我用的poi-3.10-FINAL),导入相应的jar包(最好全部导入) 下面的程序演示了一些操作word的过程,详细的函数功能可以查看此包的官方API import java.io.*; import org.apache.poi.POIXMLDocument; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.*; import

java导出word的6种方式(复制来的文章)

来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用.DLL动态链接库的生成需要windows平台的支持.

Java读取word文档解决方案

java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java2Word.jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄:itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法.经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,