CentOS7安装 openoffice

1. 首先下载rpm包

下载rpm包(官网或者其他网站都可以)但是要注意版本,我建议是4.1.2版本以上,因为以前的版本不支持含有中文的文件名的文档转pdf;
我下载的是这个Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz
下载到服务器的路径(自己决定)下;

2. 解压

将下载的openoffice解压

[root@tmp]# tar -zxvf Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz

3. 安装rpm

解压后生成文件夹zh-CN,进到RPMS目录下

[root@tmp]# cd zh-CN/RPMS
[root@RPMS]# yum localinstall *.rpm
# 或者
[root@RPMS]# yum -ivh *rpm

4. 安装桌面菜单

再装RPMS/desktop-integration目录下的openoffice4.1.2-redhat-menus-4.1.2-9782.noarch.rpm(根据系统版本类型自行匹配,最小化安装可以省略):

[root@RPMS]# cd desktop-integration
[root@desktop-integration]# yum localinstall openoffice4.1.3-redhat-menus-4.1.3-9782.noarch.rpm

5. 安装完成直接启动Openoffice服务:

默认安装位置为/opt下

临时启动

[root@desktop-integration]# /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

添加到系统开机启动

[root@desktop-integration]# vi /etc/rc.local
# 添加
/opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 
# 提升权限(如果不能开机启动执行)
[root@desktop-integration]# chmod +x /etc/rc.d/rc.local  

6. 查看服务是否启动(端口8100是否被soffice占用)

[root@desktop-integration]# netstat -nltp|grep 8100

# 显示结果:
tcp        0      0 127.0.0.1:8100              0.0.0.0:*                   LISTEN      19501/soffice.bin

7. 测试

  1. 下载jodconverter-2.2.2.zip,将其解压到文件加下,
  2. 将test.doc拷贝到lib文件夹下
  3. 执行命令 Java -jar jodconverter-cli-2.2.2.jar test.doc test.pdf

8.中途问题解决

  1. 若出现以下错误:(这个问题其实有点恶心)
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display: 

Set DISPLAY environment variable, use -display option

or check permissions of your X-Server

(See "man X" resp. "man xhost" for details)

执行:export DISPLAY=:0.0 再执行上述启动命令即可(如果没用)

看报错信息意思:

libreoffice显然是试图请求X服务(你似乎表明你没有运行

所以报错)或者那不是正确的标志,或者它不像你期望的那样工作(并且仍然需要X服务来工作)

那可能就是缺少这个服务,那就来添加

[root@centos]# yum install openoffice.org-headless

安装完成后,再去启动;

备注说明(如果再此过程中,误删了openoffice4文件夹,不要着急,这时候你在很据以上步骤是没用的,这个时候只需要将之前安装的包 reinstall 覆盖安装一下就可以了,就会重新找到openoffice启动包)

  1. 在安装openoffice4.1.2-redhat-menus-4.1.2-9782.noarch.rpm 的时候有一个报错。翻译过来就是现有的安装包与系统中含有的包冲突(原因可能是服务器以前安装过openoffice),看报错应该能明白意思,出现冲突的时候,可以用 yum的命令将冲突的包(原有的包)删掉,yum erase 包名 意思就是 Remove a package or packages from your system;

(在如上报错中,那直接将冲突的包 libreoffice-core-a:4.2.8.2-11.el6.x86_64 删除,然后在
重新安装openoffice4.1.2-redhat-menus-4.1.2-9782.noarch.rpm即可)

  1. 转换乱码问题

此时可能是linux下的jre没有相应的中文字体的问题

  • 步骤1:创建路径。/usr/java/jdk1.8.0_91/jre/lib/fonts下新建路径:fallback (java jdk目录下 echo $JAVA_HOME 查看目录 或者 find)
  • 步骤2:上传字体。将字体:simhei.ttf 黑体、simsun.ttc 宋体(windows下通过everything找下)上传至/usr/java/jdk1.8.0_91/jre/lib/fonts/fallback路径下.
  • 步骤3:查看系统字体文件路径。查看方案:
    [root@centos]# cat /etc/fonts/fonts.conf
    
    # 找到其中
    <!-- Font directory list -->
    <dir>/usr/share/fonts</dir>
    <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir>       <dir>/usr/local/share/fonts</dir>
    <dir>~/.fonts</dir>
    
  • 步骤4:字体拷贝。将 /usr/java/jdk1.8.0_91/jre/lib/fonts的全部内容,拷贝到步骤3查看的路径下,我的字体路径为:/usr/share/fonts
  • 步骤5:更新缓存执行命令:
    [root@centos]# fc-cache
    
  • 步骤6:kill掉openoffice进程
    [root@80ec6 fonts]# ps -ef | grep openoffice
    root 3045 3031 0 06:19 pts/1 00:00:03 /opt/openoffice4/program/soffice.bin -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard
    执行killkill -9 3045
    # 注:如果kill不生效  请 执行 ps -ef 找到pid 在kill 掉
    
  • 步骤7:重启后台运行openoffice
    [root@a3cf78780ec6 openoffice4]# soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
    
  • 步骤8:完成格式转换
    [root@centos]# java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /opt/test.ppt /opt/test.pdf
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据