在linux下离线安装libreoffice
libreoffice需要在有jdk的环境下运行,所以我们第一步需要安装jdk
安装jdk
-
下载Linux环境下的jdk1.8压缩包
jdk官方下载地址 -
解压对应压缩包
一般放在/usr/local/
[root@localhost local]# tar -zxvf jdk-8u181-linux-x64.tar.gz -
配置jdk环境变量
[root@localhost local]# vim /etc/profile
添加变量内容export JAVA_HOME=/usr/local/jdk1.8.0_181 #jdk安装目录 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}
-
使配置生效并且测试
使环境配置立即生效 [root@localhost local]# source /etc/profile
查看是否安装成功 [root@localhost local]# java -version
安装libreoffice
- 当安装好了jdk之后就可以安装libreoffice了
- 首先在官网下载对应的压缩包:libreoffice压缩包下载链接
- 解压压缩包 tar -zxvf LibreOffice_7.1.8_Linux_x86-64_rpm.tar.gz(我直接放到opt下解压)
- cd到解压的包中的RPMS目录下进行下载: yum localinstall *.rpm
- 安装成功后查看能否正确运行:
/opt/libreoffice7.1/program/soffice --headless --accept=" socket,host=127.0.0.1,port=8100;urp;"- -nofirststartwizard &
- 此时可能报错:/opt/libreoffice7.1/program/soffice.bin: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory
这是因为缺少了libSM.so.6包 - 根据对应的系统下载libSM.so.6包:libSM.so.6压缩包下载地址
- 把包放到系统上直接安装:yum localinstall libSM-1.2.3-1.el8.x86_64.rpm
此时就可以正常运行了。 - 添加到环境变量:vim /etc/profile
末行加:
刷新配置:export LibreOffice_PATH=/opt/libreoffice6.2/program export PATH=$LibreOffice_PATH:$PATH
最后再测试下:source /etc/profile
成功生成了pdf,但是pdf中中文变成了方框。soffice --headless --convert-to pdf /root/test.xlsx --outdir /root/
- 这时可能是因为系统中没有对应的中文字体,此时查看字体以及安装字体。
使用fc-list :lang=zh查询中文字体,发现没有中文字体
然后安装yum install -y fontconfig mkfontscale
从windows中拷贝一些微软雅黑的字体复制到 /usr/share/fonts中
执行以下命令:
然后再查看中文字体发现中文可以正常显示了。mkfontscale mkfontdir fc-cache -fv
但是excel一行的内容如果比较多的话,转换的pdf会自动换行,目前没有找到解决方案。