在线文档阅读开发手记(一)

  最近因为公司产品有一个在线文件阅读的功能需要开发,类似于百度文库和豆丁网的在线阅读功能,以SWF的形式展示在页面上。

  在网络上找了很多资料,大概的思路都是先把Word、Excel、PPT等文件转换成PDF文件,然后通过一款叫做SWFTools的工具将PDF转换成SWF文件,通过SWF播放器来展示在页面上。

  经过调研,服务器空间,将Office文档转换成PDF的方案比较可行的有两种:

  1、采用虚拟打印机的方式,将Office等打印输出为PDF文件,理论上所有可以打印的文件都可以转换成PDF。

  2、是通过OpenOffice/LibreOffice提供的Office文档转换服务将文件转换成PDF格式。

  其中第一种方案需要安装虚拟打印机,我们的产品运行环境是以Linux为主,并且没有安装Xwindow,而且我们的程序是由Java开发的,不知道安装和调用是否方便,所有这一种方案先搁置了,主要研究的是第二种方案,采用OpenOffice提供的Office文档转换服务来做开发,OpenOffice本身是基于Java开发的,所以提供了很方便的Java编程接口,香港服务器,实施起来比较简单。

  开发这样一个功能,一共需要以下几个组件:

  1、OpenOffice(提供Office文档转换服务,下载地址:)

  2、JODConverter(采用Java开发的通过OpenOffice服务转换文档的API,下载地址:)

  3、SWFTools(Ruby开发的,可将PDF等文件转换成SWF,下载地址:)

  4、FlexPaper(由Devaldi开发,可以在页面上播放上一步转换的SWF文件,下载地址:)

  将如上四个组件下载到本地,将OpenOffice安装到服务器(在Windows安装的默认路径是C:\Program Files\openOffice.org\,在CentOS的路径是/opt/openOffice.org3/)。

  安装好之后,将JODConverter的示例代码导入Eclipse中,可以使用Eclipse的SVN插件直接从JODConverter的SVN资料库中直接checkout代码,SVN地址如下:

  

  可以看到里边有两个子目录,jodconvert-core是主项目,包含了格式转换的所有源码,而jodconverter-sample-webapp是一个Web示例项目,可以运行在Web容器中接受作为Web服务接受文件转换请求,咱们可以把这两个项目都checkout到我们的工作目录。

  这里有一点需要注意一下,这两个项目都是基于Maven的,如果对Maven不熟悉的朋友,可以先去了解一下Maven的基础以及如何把Maven的项目转为Eclipse的项目。

  

  导入项目的时候可能会缺失一个jar包,org.hyperic.sigar.jar,可以到下载,下载玩之后解压,把里边的jar包安装到Maven本地资源库中去,同时把解压得到的lib目录下面的库文件按照相应的系统版本,复制到java.library.path路径下面,这个包是Java操作本地系统资源的API。

  打开org.artofsolving.jodconverter.cli包下面的Convert类,这个是JODConverter提供的Main类,运行这个类,提供相应的参数,香港虚拟主机,在安装好OpenOffice服务后,可以直接转换文件格式。

  

  阅读代码之后可以知道,运行该类需要提供几个参数,所以右键单击,选择Run as Java Application的方式是不行的,我们需要配置参数,如下:

  

  选择工具栏Run按钮,选择Run Configurations…选项,打开运行配窗口:

  

  首先点击1处,然后单击2处,新建一个配置。  

  

  在Arguments栏中输入启动参数,第一个参数是需要转换的文件,第二个参数是转换后的目的文件,然点击Run按钮,就可以以默认的参数执行转换任务,控制台输出如下日志:

  

  表示文件转换成功,可以在桌面看到转换的结果Excel.pdf文件。

  这个示例是在每次转换任务执行前启动OpenOffice文档转换服务,在转换完成后再关闭服务,这个可以从日志里面看出来。

  第一篇就先写到这里,介绍了开发这样一个功能需要用到的一些组件和一个简单测试,在下一篇里面讲介绍在Web容易里面运行OpenOffice服务。

懂得倾听别人的忠告。

在线文档阅读开发手记(一)

相关文章:

你感兴趣的文章:

标签云: