`
zi_wu_xian
  • 浏览: 31590 次
社区版块
存档分类
最新评论

Java开发在线编辑Word同时实现全文检索

阅读更多

一、背景介绍

    Word文档与日常办公密不可分,在实际应用中,当某一文档服务器中有很多Word文档,假如有成千上万个文档时,用户查找打开包含某些指定关键字的文档就变得很困难,一般情况下能想到的解决方案是使用服务器端的Apache poi技术将所有文档的文本获取后存储到数据库,然后打开文档时利用sql语句检索文档是否包含关键字来判断是否是打开文档。但是这种解决办法有很大的弊端,首先poi技术对word文档支持不是很好,其中支持word的接口单一而且不太稳定,对word文档的格式也要求很高。其次如果将成千上万个文档使用poi将其文本内容存储到数据库这一操作将会在很大程度上影响服务器的性能。本文的方案采用PageOffice提供的获取Word文档全文纯文本的功能,在每次编辑保存文件的同时,把Word文档全文纯文本提取出来保存到数据库,利用数据库sql语句检索文档是否包含关键字来实现这一需求。因为PageOffice获取全文的纯文本文档是客户端执行的,这样就在很大程度上减轻了对服务器的压力,提高了服务器的性能。

二、主要实现代码

  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,"张三");
复制代码

  2. 在保存文件的页面(SaveFile.jsp)或方法里执行:

复制代码
FileSaver fs=new FileSaver(request,response);
fs.saveToFile(request.getSession().getServletContext().getRealPath("SaveAndSearch/doc/")+"/"+fs.getFileName());
fs.setCustomSaveResult("ok");
String strDocumentText = fs.getDocumentText();//获取文档的纯文本内容,不带任何附加格式 
//--开始    更新数据库中文档的文本内容,以SQLite数据库为例 ---
  int  id=Integer.parseInt(request.getParameter("id"));
  Class.forName("org.sqlite.JDBC");
  String strUrl = "jdbc:sqlite:"
            + this.getServletContext().getRealPath("demodata/") + "\\SaveAndSearch.db";
  Connection conn = DriverManager.getConnection(strUrl);
  Statement stmt = conn.createStatement();
  String strsql="update word set Content='"+strDocumentText+"' where id="+id;
  stmt.executeUpdate(strsql);
  stmt.close();
  conn.close();
//--结束    更新数据库中文档的文本内容 ---
fs.close();
复制代码

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

三、示例说明

  1. 下载地址:http://www.zhuozhengsoft.com/dowm/,下载PageOffice  for JAVA 开发包

  2. 示例部署:解压PageOffice开发包,拷贝Samples4文件夹到Tomcat的Webapps目录下,访问:http://localhost:8080/Samples4/index.html,查看示例演示:三、14、全文搜索包含关键字的Word文档

分享到:
评论

相关推荐

    wps在线编辑,java+vue

    本项目以"weboffice-provider-v3-java-master"为名,暗示着这是一个基于Java后端和Vue.js前端的WPS在线编辑解决方案。 首先,让我们深入了解一下Java。Java是一种广泛使用的面向对象的编程语言,特别适合于开发...

    java对word、excel、pdf等操作.doc

    Java 操作 Word、Excel、PDF 等文档是 Java 开发中的一个重要方面。通过使用相关的库和技术,可以实现对文档的读取、写入、编辑等操作。本文总结的知识点可以帮助开发者更好地理解 Java 操作文档的原理和方法,并...

    java开发知识库管理系统.zip

    在Java中,可以使用Spring Boot框架快速搭建后端服务,利用MySQL或PostgreSQL作为数据库存储知识内容,使用Elasticsearch实现高效全文检索。 四、Spring Boot框架 Spring Boot简化了Spring应用的初始搭建以及开发...

    HTML在线编辑器Word XP

    HTML在线编辑器是一种网页开发工具,它允许用户以类似于Word XP的界面来创建和编辑HTML内容,无需直接编写代码。这种编辑器极大地简化了非专业程序员或内容创作者的工作流程,使他们可以像在熟悉的文字处理软件中...

    java中使用layui框架+openoffice实现电子档案管理系统

    在Java开发领域,构建一个电子档案管理系统是一项常见的任务,它涉及到数据存储、文件管理、用户交互等多个方面。在这个系统中,我们看到使用了LayUI框架和OpenOffice库,这两大技术是实现此项目的关键组件。 LayUI...

    api.rar_java在线api中文_pdf word

    Java API(Application Programming Interface)是Java编程语言的核心组成部分,它为开发者提供了丰富的类库和接口,使得开发人员能够构建各种应用程序。本资源“api.rar”包含了一份Java API的中文文档,这对于那些...

    Java + html 文档检索系统

    1. **rouyi框架**:Rouyi是一个Java开发的轻量级企业级应用框架,它提供了一整套开发工具和服务,包括数据访问、事务管理、安全控制、视图渲染等。在这个项目中,rouyi框架可能是用于构建后端服务,处理文档检索和...

    poi解析word文档 及 试卷数学公式导入wmf图片转成png图片

    例如,`Tests.java`可能包含一系列测试用例,`TestConverToHtml.java`可能专门处理将Word文档转换为HTML(可能为了在线查看或编辑),而`Test.java`可能是一个通用的测试类。 - "WMF2PNG":这可能是执行WMF到PNG转换...

    java实现的锋网新闻发布V1.0.rar(包含原代码)

    java实现的锋网新闻发布V1.0.rar(包含原代码),实现了新闻无限分类,正在开发中的专业斑同时还支持20级子栏目分类(免费斑只支持2级)。 专业斑实现了系统管理员,新闻发布人员,新闻审核人员等多级分类,比较适合...

    java开源包4

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    java实现 文本相似度

    在IT领域,文本相似度是计算两个或多个文本之间的相似程度的一种技术,广泛应用于信息检索、推荐系统、自然语言处理等多个场景。Java作为一种通用且强大的编程语言...同时,利用开源库可以大大简化开发工作,提高效率。

    java开源包3

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    java开源包6

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    java开源包9

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    Word版可编辑-Java英汉电子字典课程设计源代码精心整理.pdf

    本资源是一个基于 Java 语言开发的英汉电子词典课程设计源代码,主要实现英汉互译、词汇添加、修改和删除功能,同时具有帮助和关于等功能。该系统拥有自己的数据库,能够存储大量的英汉词汇数据。 知识点1: 用户...

    java开源包101

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    java开源包5

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    Java资源包01

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

    java开源包8

    同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用...

Global site tag (gtag.js) - Google Analytics