最近公司要弄个在线阅读,就是仿百度文库那种。弄了好几天,终于弄出来,贴出来跟大家分享一下。
这里只写linux(ubuntu)平台的,windows平台的有机会再写吧。
首先我们先准备我们要用的东西
jodconverter-2.2.2(下面有给出源码,源码里面有了,可以不用下载)
openoffice下载安装,以前我没有用过linux,安装弄的我很痛苦。解压,然后进入目录,./configure ,make ,make install (linux高手不要喷我,我承认我对linux很菜) 。
在安装swftools前要先安装一些swftools要用的一些第三方库文件,命令如下。
wget http://nchc.dl.sourceforge.net/project/freetype/freetype2/2.4.8/freetype-2.4.8.tar.bz2
tar xvf freetype-2.4.8.tar.bz2
cd freetype-2.4.8
./configure
make&&sudo make install
wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
tar xvf jpegsrc.v8d.tar.gz
cd jpegsrc.v8d
./configure
sudo make&&sudo make install
wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.6/zlib-1.2.6.tar.gz
tar xvf zlib-1.2.6.tar.gz
cd zlib-1.2.6
./configure
make&&sudo make install
swftools也是用./configure , make , make install。
然后开始写java代码,代码附件。
代码写好后,写不要急着运行,因为运行会报错。先执行下面的命令,可能会有些错误信息,不用管,然后看下8100端口启用没有。然后再运行java代码。
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
因为公司主要是用PHP开发的,所以,上传文件什么的,都是用PHP,所以,我另外还写了一个servlet。然后用PHP程序来调用这个servlet。PHP调用servlet的代码如下。
$post_field = 'officename=' . urlencode ( '/tmp/demo.ppt' ) . '&pdfname=' . urlencode ( '/tmp/demo.pdf' ) . '&part=' . urlencode ( '/tmp/' ) . '&swfname=' . urlencode ( 'demo.swf' );
$curl = curl_init ();
curl_setopt ( $curl, CURLOPT_URL, 'http://192.168.0.8:8080/Demo/OfficeToSwfServlet' );
curl_setopt ( $curl, CURLOPT_POST, 1 );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $post_field );
$info = curl_exec ( $curl );
curl_close ( $curl );
echo $info;