用POI3.9写一个基于office系列文档的转换系统(设计篇)

想用Apache的POI3.9版本编写一套基于office系列文档的一个转换系统,比如对office文档的读写操作、其中的关键字检索操作、把文档转换为html或者支持在线预览的操作等功能。

一、需求

由于前段时间已经写了一个文档在线预览功能,就是对office文档、txt、图片、pdf等文档,可以在线预览操作,也是通过搜索引擎搜索、查看一些技术文章等调研方式写出的,基本原理也就是通过几个工具转换实现的,相关原理如下图:

二、问题

通过上面的流程是可以实现文件转换、在线预览等功能的,但是我感觉上面的方法存在至少以下几个缺点:
1、安装过程过于繁琐,并且过于庞大,完成上面的操作需要安装将近200多兆的软件工具,不管从部署或者使用方面都不太好。

2、转换过程中对资源的浪费(占用)严重,比如内存、硬盘等资源,内存资源:转换过程中,对内存的占用过于严重,遇到大文件时可以把cpu的使用率占满,对服务器有严重的影响;硬盘资源:一个文档实现转换或预览功能,需要在硬盘上生成pdf、png(缩略图)、swf三个文件,对资源占用严重。

3、转换效率不高,对大文件转换速度比较慢,还经常出现卡死的现象;转换过程中对文档中的一些公式或者特殊字体没有很好的支持,会出现乱码或者其他不可读的字符情况。

三、改进

想通过其他方式实现上述的功能,通过POI、通过jcob两种方式。

注:因为jcob不能在linux中使用,故目前选择POI方案。

三、疑惑

1、我通过简单的例子实现了word文档的操作(目前只对word文档先做测试),我的思路是把word中的内容写入到html中,然后通过访问html实现浏览操作,但是word中的一些格式在html中无法很好的展现(我还没有研究出来)

2、我的目的是把word中的内容实现在线预览操作,目前正在尝试POI操作,不知还有没有其他解决方案(最好不依赖于操作系统)。请做过或了解类似功能或者对POI熟悉的朋友们给个指引,一起探讨分享,感激不尽。

结语:本篇博文的目的是:分享我之前所做的有关文件转换和预览功能原理,然后请教大家有关这个实现有没有更好的解决方案。请大家看到后给出评论,写上你们的所思所想,一方面给我一个方向,另一方面大家共同探讨。