多类型文档检索和转换技术研究
2015-04-28
作者:李培国, 叶 嫣
摘 要: 云时代的到来,企业电子文档的日益增长,预示着电子文档管理工作的重要性。结合POI和Aspose等工具,提出基于POI和Aspose组件的文档检索和在线浏览实现方式。着重阐明POI与Lucene结合的文档检索,以及基于Aspose组件的文档转换和在线浏览的功能实现。
关键词: 电子文档; POI; Aspose; Lucene
随着云时代的到来,企业内部的各种信息数据量也在飞速增长,正在步入大数据时代[1];企业内部每天都会产生大量的各种类型的电子文档[2],包括各种客户信息、产品信息、技术资料、培训资料等。如何对这些数量庞大、种类繁多的电子文档进行统一的管理,对于企业来说是一个亟待解决的问题。同时,对这些文档的有效分析和管理,对于企业分析客户信息、判断市场走向,以及构建企业知识库等方面都有很大的实际意义。
在这些文档管理的工作中,需要解决文档的保存类型和显示方式的问题。本文主要研究了各种类型文档的内容提取技术和文档检索功能实现、统一格式转换的方法,以及在线浏览的问题。
1 文档内容处理技术
1.1 常用文档类型
常用的文档类型包括:Microsoft Office Word、Microsoft Office Excel、Microsoft Office PowerPoint、PDF等。其中Microsoft Office 2007以前的版本均采用二进制文件格式,从2007版本开始采用新的Open XML[3]文件格式;PDF[4]作为便携式文档格式,具有独立于系统软硬件环境的版式文档格式,在文档管理中承担越来越重要的地位。
1.2 POI工具介绍
POI是开源组织Apache下面的子项目,提供Java语言的API对Microsoft Office文档的处理功能;POI支持Office 2007以前的二进制文件格式,以及Office 2007以后的Open XML格式文档。
针对几种主要的Office文档,POI提供以下几个核心类:
Word:HWPF 处理二进制文件格式(.doc),XWPF 处理Open XML文件格式(.docx)。
Excel:HSSF处理二进制文件格式(.xsl),XSSF 处理Open XML文件格式(.xslx)。
PowerPoint:HSLF 处理二进制文件格式(.ppt),XSLF 处理Open XML文件格式(.pptx)。
POI通过以上的几个核心类,可以对Office文档进行内容读取和内容更新等操作;利用POI的内容提取功能,结合使用Apache的子项目Lucene全文检索工具,可以实现对上述三大类Office文档的全文检索操作,大大提高对文档的使用价值。
目前,POI还没有针对PDF文档格式进行处理的功能。
2 文档转换技术
文档管理使用中的另一个要解决的问题是文档转换技术。下面讨论目前比较流行的几种转换技术。
2.1 FlashPaper工具介绍
FlashPaper[5]是Macromedia公司开发的一款文档转换工具。FlashPaper支持大部分的电子文档格式,通过虚拟打印方式转化为swf格式,再通过Flash在线展示转换后的swf文件。FlashPaper如下几个特点:
(1)支持文档类型广泛;
(2)可以进行批量文档转换;
(3)转换的swf文件可以在支持Flash的任何平台上播放,具有跨平台性;
同时,作为一款虚拟打印转换工具,FlashPaper也存在以下不足:
(1)工具本身只支持Windows平台,不具备跨平台性;
(2)不具备多线程能力;
(3)浏览文档必须支持Flash;
(4)在集成开发时,进行无缝集成比较困难。
FlashPaper作为目前应用非常广泛的文档转换工具,已经应用在很多领域;包括教育、企业培训、互联网等;能够在转换后,保持原有文档的所有排版样式,包括段落、字体等;同时,swf的文件格式也有利于转换后的文档进行在线浏览。
2.2 Aspose文档转换组件
Aspose提供了一套文档转换的组件,用于无缝集成到其他的文档管理系统中。目前Aspose主要有以下几种主要的套件:
(1)Aspose.Words, 用于处理Office Word文档(.doc,.docx);
(2)Aspose.Cells, 用于处理Office Excel文档(.xls, .xlsx);
(3)Aspose.Slides,用于处理Office PowerPoint文档(.ppt, .pptx);
(4)Aspose.Pdf,用于处理Pdf文档。
Aspose提供了不同版本的组件,包括.Net平台组件、Java平台组件、Cloud API、Android平台组件等,以满足不同的开发集成需要。
Aspose提供的组件有丰富的文档操作API,主要包括:文档内容读取、创建文档、编辑文档特定内容、操作文档内容的样式、文档格式转换等。这些功能只要通过简单地调用组件提供的API就可以实现,可方便地集成到系统中。
与FlashPaper不同,Aspose的组件提供文档转换API,可以将文档统一转换为HTML格式,直接通过浏览器就可以查看;转换后也基本上保留了文档原有的样式。转换后的HTML格式,则更有利于在各种平台进行浏览,甚至包括移动终端,只要能够查看HTML即可。
Aspose的使用流程图如图1所示。
Aspose作为组件工具,具有以下的优点:可与应用系统无缝集成;具有多种平台版本可供选择,有一定的跨平台性;丰富文档操作API;可以进行多线程操作;可以进行多种格式的转换,并且支持HTML格式输出。
Aspose作为一套强大的文档管理组件,能够完成几乎所有用户需要的文档操作需求;而这些操作可以完全由这些组件的API独立完成,不需要任何其他的支持;同时,在操作和转换文档的过程中,能够基本完美地保留原有的样式,实现文档的无失真转换和操作。
3 应用研究
在企业电子文档管理系统中,需要包含很多模块,如文档上传下载、文档版本控制、文档备份管理、归档管理、文档检索、文档浏览等;本文主要研究文档的检索和文档的在线浏览两个模块。
3.1 文档检索
文档检索,主要就是系统根据用户输入的关键字,搜索出包含相应关键字的文档。检索方式包括:
(1)属性检索:在属性字段中匹配搜索关键字,如作者、文档创建时间、文档主题等;
(2)全文检索:在文档的全文中匹配搜索关键字。
首先通过POI工具提供的API读取电子文档的属性和内容;读取的内容如果是中文,还需要进一步的分词、语义分析等操作;根据读取的内容使用Lucene建立 文档的索引,供文档检索时使用;用户检索文档时,输入搜索关键字,调用Lucene的检索API,完成对文档的检索操作。文档检索模块的流程如图2所示。
3.2 文档在线浏览
为了能够更方便地进行在线浏览,本文选择将文档统一转换为HTML格式,这样可以随时随地通过浏览器进行在线浏览并且具备最好的跨平台性。
本文采用前文提到的Aspose组件,集成到文档管理系统中;通过Aspose提供的转换API完成电子文档转换为HTML的工作。Aspose组件的使用相对比较简单,以Java版本为例,.docx文档的转换过程大致如下:
try {
Document doc = new Document(fileName);
HtmlFixedSaveOptions sv1 = new HtmlFixedSaveOptions();
sv1.setPageIndex(0);
sv1.setPageCount(doc.getPageCount());
sv1.setPrettyFormat(true);
sv1.setExportEmbeddedCss(true);
sv1.setExportEmbeddedFonts(true);
sv1.setExportEmbeddedImages(true);
doc.save("output.html", sv1);
} catch (Exception e1) {
e1.printStackTrace();
}
通过如上的转换,就可以将电子文档转换为HTML格式。在用户浏览文档时,直接调用该文档对应的HTML即可。
针对电子文档管理系统中的文档检索和在线浏览两大功能,本文提出了基于POI结合Lucene的文档检索功能实现,以及使用Aspose组件实现文档转为HTML格式,进行在线浏览。POI和Lucene都是Apache下的子项目,具有一脉相承的特点,能够很好地结合应用,实现文档检索功能;Aspose作为一款强大文档处理组件,能够将多种文档类型统一地转换成HTML格式,实现文档最大程度的跨平台在线浏览。
目前已经有很多成熟的文档管理系统以及知识库系统等。本文从不同的角度,提供更多文档管理中的技术实现方式,以及更多的技术选择。
参考文献
[1] 冯伟.大数据时代面临的信息安全机遇和挑战[J]. 中国科技投资,2012(34):49-53.
[2] 闫冬. 电子文档管理的现状、特点以及建议[J]. 长春教育学院学报,2009,25(03):144-145.
[3] RICE F. Introducing the Office (2007) Open XML File Formats[EB/OL].Microsoft Corporation.(2006-05)[2014-03] http://msdn.microsoft.com/en-us/ms406049(office.12).aspx.
[4] 孙殷, 王鹏. PostScript文件与PDF文件间数据转换[J]. 微型机与应用,2013,32(11):19-21.
[5] 祁兴华, 鲍剑洋. 基于FlashPaper的教学网站文档转换系统的研究与设计[J].办公自动化, 2012(11):59-60.