项目中有个文件预览功能,百度了一下实现的方式,有三种:
1. 第三方插件,例如:office web 365
2. 使用oppenoffice + swfTools + flexPaper实现
3. 使用oppenoffice + pdf.js实现
各其中的特点:
1. 第三方插件:office web 365
特点:
1. 实现起来方便简单,只需要提供一个链接就可以
2. 可以实现文件缓存,减少服务器性能
3. 有免费版、标准版、高级版等各种版本的支持。
4. 安全问题,毕竟不是自己的东西
5. 不适合局域网内的项目
2. 使用oppenoffice + swfTools + flexPaper实现
特点:
1. 实现相对复杂,需要在服务器安装oppenoffice+swfTools软件,需要在程序上进行文件的转换
2. 不支持中文路径,可以实现比较麻烦
3. 使用oppenoffice + pdf.js实现
特点:
1. 显示效果好,只需要安装oppenoffice软件
2. 可以根据自己的项目进行配置,实现简单
这里选择的是第三种实现方式:使用oppenoffice+pdf.js实现
具体实现:
一、 安装oppenoffice软件,在Linux服务器上安装
1. 下载安装包:http://www.openoffice.org/download/index.html 选择最新版本进行下载
2. 拷贝到Linux服务器上,解压文件: tar -xzvf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz
解压成功后:
3. 进入文件夹中安装rpm,一次性安装全部:rpm -ivh *.rpm 自动安装
安装中:
4. 安装成功之后需要安装oppenoffice的界面,安装程序在desktop-integration这个文件夹下,
安装文件名是openoffice4.1.5-redhat-menus-4.1.5-9789.noarch.rpm
开始安装:rpm -ivh openoffice4.1.5-redhat-menus-4.1.5-9789.noarch.rpm
到此,安装告一段落。
5. 启动oppenoffice
进入program路径下:cd /opt/openoffice4/program/
执行命令:soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
执行命令出现以下错误:
执行命令:export DISPLAY=:0.0
再次执行oppenoffice启动命令,查看监听:netstat -tln,看到端口为8100就代表启动成功
6. 停止oppenoffice
查看进程:ps -ef|grep soffice;
杀死进程:kill -9 21341
再次监听端口:netstat -tln
这时没有8100端口,停止oppenoffice成功。