一、背景故事
openOffice是用来做office文档在线预览功能,把office文档转换成pdf交给前端显示。
之前系统开发过程一直没有将springboot服务怼上服务器,所以只安装了windows系统的openOffice。
于是今天在linux服务器安装openOffice就碰到过几个坑。网上各种找大神的博文,发现安装起来不是很顺畅,就写了这篇随笔,记录一下,遇到的问题,方便自己以后查看。
二、操作步骤
1.http://www.openoffice.org/zh-cn/download/ 去官网链接下载linux版本的openOffice 以4.1.6 版本为例。
2.将压缩包上传至服务器上,并进行解压安装。
1 tar -zxvf 对应的压缩包名字
2 cd 进入解压后的 /zh-CN/RPMS 目录
3 yum localinstall *.rpm
4 cd desktop-integration
5 rpm -ivh openoffice4.1.6-redhat-menus-4.1.6-9790.noarch.rpm
默认会安装在/opt目录下。
三.启动服务
1 /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard ##临时启动
2 nohup /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & ##后台启动
端口号根据自己项目实际来确定。
后台启动会一直占用内存,据各路大神说 大概100M,我自己没测过具体值不清楚。
有的程序是需要预先启动openOffice 服务的,有的则在代码里自己启动服务。
四.查看进程
netstat -lnp |grep 端口号
大概显示成这样就算启动完了。
tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 14362/soffice.bin
五、闲聊
openOffice转转word文档效果不错,转Excel的话就真的效果不行,简单的Excel能处理处理,复杂的就很慢很慢,而且效果极差。再说,实际上微软自己的office软件转pdf的效果也很差。
六、问题
1./opt/openoffice4/program/soffice.bin: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
找不到libXext.so.6文件,去系统里面的/usr/lib64 或者 /usr/lib 查看有没有这个文件,如果有就copy到/opt/openoffice4/program/目录里面,
赋予chmod 777 libXext.so.6 。如果没有那么要安装该包。
由于我的系统是64位,那么输入yum install libXext.x86_64 ,如果是32位系统输入:yum install libXext.i686 。安装完成后去那两个目录找libXext.so.6复制到
2. /opt/openoffice4/program/soffice.bin: error while loading shared libraries: libfreetype.so.6: cannot open shared object file: No such file or directory
找不到libfreetype.so.6文件,同上输入:yum install libfreetype.i686,安装完之后去那两个目录找libXext.so.6复制到/opt/openoffice4/program/目录里面,赋予权限。
3.装完openoffice后启动服务可能会报错:no suitable windowing system found, exiting
从字面上的意思就是缺少一个窗口化的系统。。所以就安装一个。
yum groupinstall "X Window System"
如果你变秃了,那么恭喜你也变强了!