文档(word pdf excel txt ) lucene 全文检索以及在线预览
最近一个项目需要对常规文档的内容进行全文检索,查找出来后可以点击在线浏览。
1、在全文检索方面:可以按相关度、文档时间和浏览量排序。效果如下图:
2、在线浏览方面。在线浏览可是一个大难题,而且要支持在手机设备里浏览,需要自动适应屏幕大小,并且还要可以分页。
方案选择:
(1)office文档转html,首先引入com组件中office库,然后在程序集扩展中引入word,excel,ppt的dll。
这个方案依赖windows平台和服务,做不到跨平台,而且com组件服务经常会出现问题,需要人工kill进程。
效果上也做不到分页。
(2)office文档转PDF,PDF转swf,使用flexpaper+swftools实现在线浏览。
这个方案可以使用openoffice 把文档转换成pdf,然后使用swftools把pdf转换成swf.这个方案有不少问题:第一是文件达到几十页时加载很慢,效率不好。第二是依赖flash,手机上浏览不了。
最后选择了一种方案:所有不同格式的文档先转换成pdf,然后再由pdf转换成html5来显示。这个方案还可以做得到全部过程都是在java中实现,不需要windows 和 openoffices的服务,纯java实现,即可靠又高效。效果如图:
(1)预览word,有一百多页。
(2)excel预览
(3)在手机里预览效果