使用卓正PageOffice--Word文档全文检索

1、 背景介绍

Word文档与平常办公密不可分,在实际应用中,当某一文档服务器中有不少Word文档,假若有成千上万个文档时,用户查找打开包含某些指定关键字的文档就变得很困难,目前网络上能找到的解决方案可能是使用服务器端的Apache POI技术将全部文档的文本获取后存储到数据库,而后打开文档时利用sql语句检索文档是否包含关键字来判断是不是打开文档。可是这种解决办法有很大的弊端,首先POI技术对word文档支持不是很好,其中支持word的接口单一并且不太稳定,对word文档的格式也要求很高。其次若是将成千上万个文档使用poi将其文本内容存储到数据库这一操做将会在很大程度上影响服务器的性能。sql

PageOffice提供了获取Word文档全文纯文本的功能,能够把获取到的文本内容保存到数据库,利用数据库sql语句检索文档是否包含关键字来实现这一需求。PageOffice获取文档纯文本的工做是客户端执行的,这样就在很大程度上减轻了对服务器的压力,提升了服务器的性能。数据库

2、主要实现代码

获取Word文档中的纯文本文件(不带任何附加格式)并保存到数据库,之后就能够简单的利用SQL查询轻松实现文档管理中的全文检索功能。服务器

Java代码:网络

FileSaver fs = new FileSaver(request, response);
    String strDocumentText = fs.getDocumentText(); 
    // 您能够把此文本字符串保存到数据库字段。保存到数据库的代码此处省略
    fs.saveToFile(request.getRealPath("doc/") + "/" + fs.getFileName());
    fs.Close();

ASP.NET代码:性能

PageOffice.FileSaver fs = new PageOffice.FileSaver();
    string strDocumentText = fs.DocumentText; 
    // 您能够把此文本字符串保存到数据库字段。保存到数据库的代码此处省略
    fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);
    fs.Close();

注意:此属性目前仅适用于Word。spa

3、示例说明

请参考PageOffice开发包中Samples4示例的综合演示:
3、全文搜索包含关键字的Word文档(专业版、企业版)3d

获取文档中的纯文本保存到数据库,根据关键字检索文档中是否包含该关键字。code

  1. 数据库中的文档的存储结构说明(以access数据库为例)。
    144orm

  2. 搜索包含关键字的文档,以列表显示文档名。
    145blog

  3. 打开编辑包含关键字的文档,而且高亮显示关键字。
    146
    高亮显示的主要js代码:

var sMac = "function myfunc()" + "\r\n"
          + "    Application.Selection.HomeKey(6) \r\n"
          + "    Application.Selection.Find.ClearFormatting \r\n"
          + "    Application.Selection.Find.Replacement.ClearFormatting \r\n"
          + "    Application.Selection.Find.Text = \"" + key + "\" \r\n"
          + "    While (Application.Selection.Find.Execute()) \r\n"
          + "        If (" + visible + ") Then \r\n"
          + "            Application.Selection.Range.HighlightColorIndex = 7 \r\n"
          + "        Else \r\n"
          + "            Application.Selection.Range.HighlightColorIndex = 0 \r\n"
          + "        End If \r\n"
          + "    Wend \r\n"
          + "    Application.Selection.HomeKey(6) \r\n"
          + "End function";
      document.getElementById("PageOfficeCtrl1").RunMacro("myfunc", sMac);
相关文章
相关标签/搜索