这里以版本【6.4.5.1】为例子
LibreOffice_6.4.5.1_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
LibreOffice_6.4.5.1_Linux_x86-64_rpm.tar.gz
]# pwd
/usr/local/src
#tar -zxvf xxx
# ll
drwxr-xr-x 4 root root 48 6月 11 2020 LibreOffice_6.4.5.1_Linux_x86-64_rpm
drwxr-xr-x 3 root root 18 6月 11 2020 LibreOffice_6.4.5.1_Linux_x86-64_rpm_langpack_zh-CN
-rw------- 1 root root 843112 12月 27 10:05 LibreOffice_6.4.5.1_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
-rw-r--r-- 1 root root 256207809 12月 27 10:04 LibreOffice_6.4.5.1_Linux_x86-64_rpm.tar.gz
# cd LibreOffice_6.4.5.1_Linux_x86-64_rpm/RPMS/ 进入LibreOffice目录
# yum -y install *.rpm 全部安装(可自定义指定目录)
# cd LibreOffice_6.4.5.1_Linux_x86-64_rpm_langpack_zh-CN/RPMS/ 进入中文语言包目录
# yum -y install *.rpm 全部安装
默认安装目录为/opt/libreoffice6.4/
# pwd
/opt
# ls
libreoffice6.4
# cd libreoffice6.4/program/
#这里如果少依赖则安装,如果不缺少则跳过。主要是查看有没有soffice这个执行文件
# yum install cairo
# yum install cups-libs
# yum install libSM
# /opt/libreoffice6.4/program/soffice --version 表示安装完成
LibreOffice 6.4.5.1 be964ce243d03404cfeed53d0487f5d6bd49c627
验证(例如docx转pdf)
随便上传个docx文件,这里随便上传一个ETCD.docx
# pwd
/opt
# ls
ETCD.docx libreoffice6.4
–convert-to pdf 后面的 /opt/ETCD.docx为原文件路径
–outdir /opt/(转换后文件存放目录)
#/opt/libreoffice6.4/program/soffice --headless --invisible --convert-to pdf /opt/ETCD.docx --outdir /opt/
# sz ETCD.pdf
下载 ETCD.pdf: 51.5 KB 100%
查看转化后的pdf文件如下:
打开ETCD.pdf 全乱码!字体原因,linux上没有windows的字体。
windows字体在C:\Windows\Font下
centos字体在/usr/share/fonts下
将C:\Windows\Font\下所有字体上传至windowsFont目录下
我的方法是把window下面的字体目录打成一个zip包,然后上传到centos服务器进行解压。放到一个windowsFont的目录中。
# cd /usr/share/fonts/
# ls 默认已经有的目录
dejavu google-crosextra-caladea google-crosextra-carlito liberation opensymbol
# mkdir windowsFont/ 新增一个目录windowsFont
# ls
dejavu google-crosextra-caladea google-crosextra-carlito liberation opensymbol windowsFont
# cd windowsFont/
# unzip Fonts.zip . #把windows上面字体压缩包解压缩到当前目录中【windowsFont】
# pwd
/usr/share/fonts/windowsFont
# ls |head -n20
8514fixe.fon
8514fix.fon
8514fixg.fon
8514fixr.fon
8514fixt.fon
8514oeme.fon
......
# mkfontscale
# mkfontdir #加载有些识别不了,原因是window的字体不是每个都用得到,我们拷贝字体是全量拷贝 忽略即可
# fc-cache
# pwd
/opt
# /usr/bin/libreoffice6.4 --headless --invisible --convert-to pdf /opt/ETCD.docx --outdir /opt/1 #这次放在1目录下
# ls
1 ETCD.docx ETCD.pdf libreoffice6.4
# sz 1/ETCD.pdf
下载 ETCD.pdf: 153.8 KB 100%
打开新下载的pdf文件,可以查看已经正常。
调用的过程中,需要寻找linux机器中的libreoffice软件。
如下java服务调用异常:
officeHome 没找到,可以在启动参数后面增加参数 “-Doffice.home”
这里注意 不能有引号以及斜杠
/opt/libreoffice6.4 为软件安装目录
/usr/bin/java -Xms512m -Xmx512m -Doffice.home=/opt/libreoffice6.4 -jar xxxx-server.jar --spring.profiles.active=dev
如果还是有异常,可以尝试通过软连接的方式进行环境变量的软连接指向
# ln -s /usr/bin/libreoffice6.4 /usr/local/lib/libreoffice