前言:由于项目中使用了office的功能,比如文件之间的互转,目的是想做一个文件预览功能,只要是office相关的功能,都统一转化为pdf的文件流返回,为前端提供预览的数据。
1.下载LibreOffice安装包
我这里已LibreOffice_7.1.8_Linux_x86-64_rpm.tar.gz为例,将其拷贝到目标服务器的home文件夹下
2.解压安装包
tar -zvxf LibreOffice_7.1.8_Linux_x86-64_rpm.tar.gz
3.进入RPMS的子目录进行安装
cd /home/LibreOffice_7.1.8.1_Linux_x86-64_rpm/RPMS/
sudo dnf localinstall *.rpm
4.安装所需要的依赖
本项目使用主要是对文件的转换,所以我就在服务器上的/home文件夹下创建了一个测试的docx文件,
/opt/libreoffice7.1/program/soffice.bin --headless --invisible --convert-to pdf /home/11.docx --outdir /home/
其中前面是程序的路径,然后pdf是转换的目标文件类型,最后是输出的路径。 安装后直接运行是会失败的,默认安装还缺少运行文件的依赖。查看soffice.bin的依赖
ldd /opt/libreoffice7.1/program/soffice.bin
可以看到soffice.bin缺少**libSM.so,libICE.so,libX11-xcb.so **,所以需要依次安装需要的依赖 其实系统中是有对应的so的,只是版本是i686,不是程序需要的x86_64版本,我们可以通过
yum whatprovides libSM.so.6
查看so库的版本信息,其他的so库类似。所以需要安装x86_64版本。
sudo yum install libSM
sudo yum install libICE
sudo yum install libX11-xcb
安装完成后,再次查看依赖,确定没有缺失后。再次做转换文件验证,运行如果文件中有中文会出现乱码情况,需要给linux中添加中文的字体文件。
5.添加中文字体文件
(参考博客:https://blog.csdn.net/qq_44839276/article/details/107312092)
1.进入字体目录,并创建自定义的字体文件夹
cd /usr/share/fonts/
mkdir myfonts
2.拷贝自己的文件到myfonts中
3.刷新字体库
cd myfonts
mkfontscale
mkfontdir
fc-cache -fv
fc-list
如果提示mkfontscale命令未找到,则安装
yum install mkfontscale
6.最终测试
再次运行文件转化命令
/opt/libreoffice7.1/program/soffice.bin --headless --invisible --convert-to pdf /home/11.docx --outdir /home/
下载11.pdf下来后,可查看转换成功的pdf。至此LibreOffice安装成功,并调试了项目中需要的文件转换功能。
|