需求场景
开发的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查询即可。
相关推荐
Java 获取 Word 中的所有插入和删除修订 在 Word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入、删除、替换和格式更改。这篇文章将介绍如何使用 Java 获取 Word 文档中的所有插入和删除修订。 ...
Java读取Word文档中指定位置(可以自己自定义位置)的表格数据或文本内容 * @param filePath 文档路径 * @param start 指定位置开始读取表格数据的该位置上的字符串 * @param end 指定位置开始结束读取表格数据的该...
在Java编程环境中,读取Word文档的页码是一项常见的任务,尤其在处理大量文档数据时。这个场景下,我们通常会使用Apache POI库,这是一个强大的API,专门用于处理Microsoft Office格式的文件,包括Word(.doc和.docx...
在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入文本、表格和图片,以及生成新的Word报告。 1. **Java POI流处理Word模板**: - POI API提供了`XWPFDocument`类来处理`.docx`文件,这是Word 2007...
1. **解压 .docx 文件**:使用 `java.util.ZipFile` 类来打开并读取 .docx 文件,获取 `word/document.xml` 的 `ZipEntry`。 2. **解析 XML**:使用 `javax.xml.parsers.DocumentBuilderFactory` 和 `...
在Java编程环境中,读取Word 2003文档是一项常见的任务,这通常涉及到处理`.doc`文件格式。为了实现这个功能,开发者可以利用各种库,如Apache POI或者JODConverter。Apache POI是一个流行的开源项目,它提供了对...
在Java编程中,有时我们需要处理来自不同文档格式的数据,例如从Word文档中提取表格内容,并将其转换成Excel文件。这通常涉及到使用Apache POI库,一个强大的API,用于读写Microsoft Office格式的文件,包括Word(....
在Java编程环境中,替换Word文档中的变量是一项常见的需求,特别是在自动化文档生成或者模板处理的场景中。本知识点将深入探讨如何使用Java实现这一功能,主要涉及的库是Apache POI,这是一个广泛使用的开源库,用于...
在Java编程环境中,提取Word文档内容是一项常见的任务,特别是在数据处理、文档自动化或者信息抽取等领域。Word文档(.doc或.docx)存储了文本、格式、图像等多种元素,而Java提供了一些库,如Apache POI和...
通过Java2Word和Jacob,开发者可以轻松地在Java应用中实现Word文档的生成,这对于企业级应用来说尤其有用,比如报表系统、合同管理系统、知识库等,可以大大提高工作效率,减少手动操作。不过,需要注意的是,由于...
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘...以上配置配好后即可加载exp_java_word_demo项目,里面有示例代码,望对有需要的人有所帮助!
Java2Word是一款基于Java开发的工具,主要用于将Java源代码或者其他文本内容转换成Microsoft Word文档。这个安装包“Java2Word.rar”包含了实现这一功能的所有必要文件,使得用户能够方便地将程序或技术文档导出为...
读取word文件的内容,并将内容返回为String类型!
java读取不同版本文档的内容以及字体大小,实现对文档格式进行匹配!
这些示例代码虽然未在文本中给出,但在实际的Java2Word文档中应有详细的示例和解释,帮助开发者理解和实现相应的功能。总的来说,Java2Word通过Jacob组件为Java开发者提供了便捷的途径,使他们能够在服务器端生成、...
通过Java读取word表格中的内容,将内容存到数据库中,将Word中的图片存到硬盘中
在Java编程环境中,导出Word文档是一项常见的任务,特别是在企业级应用中,如报表生成、数据导出等。本文将详细讲解如何使用Java实现Word文档的导出,并着重介绍涉及的库和关键技术。 首先,标题"JAVA 导出WORD"指...
在这个场景中,我们关注的是如何利用Java POI库通过Word模板生成包含特定文本、表格和图片的报告。 首先,我们需要了解Java POI中的XWPFDocument类,它是用来处理.docx文件的。XWPFDocument可以读取、修改和创建...
由于项目需要,苦苦对Java操作Word进行了一番研究,包括当下比较流行的java2Word、jacob、POI、itext等,只能说各有千秋,但是没有一个是完全适合我的,没有办法,只能去各种尝试,在研究了java2Word这个jar包的API...