1. 删除预安装的LibreOffice
Ubuntu 和其他的 Linux 发行版带有预安装的 LibreOffice。这可能不是最新的,这是因为发行版有特定的发行周期。在进行新安装之前,你可以通过以下命令删除 Ubuntu 及其衍生发行版中的的旧版本。
python
sudo apt remove --purge libreoffice*
sudo apt autoclean
sudo apt autoremove
然后重启以确保一切正常(尽管你也可以跳过这一步)。
2.下载
去官网下载地址下载软件包,并通过从下拉菜单中选择类型下载 "最新的" 版本。对于 Ubuntu 和其他衍生产品,请选择 .deb 文件。
下载下来是个压缩包,解压一下(我是windows上下载,解压好又拖到ubuntu上去的,你可以直接wget 下载到ubuntu解压)
再解压一层
到下面这一层就可以了
看一下里面目录结构
红框里面是要安装的.deb 安装包
把 LibreOffice_7.6.7.2_Linux_x86-64_deb 整个文件夹拖到ubuntu 上准备安装
3.安装
安装主安装程序的所有deb包
python
# 目录啥的改成自己的哈
sudo dpkg -i ./LibreOffice_7.6.7.2_Linux_x86-64_deb/DEBS/*.deb
还可以安装中文离线帮助文件中的所有deb包,哈哈,我没装所以后面转的中文pdf乱码了,不过后面用其他方法弄好了
python
# 这一步可以跳过也可以自己研究
# 安装中文语言包中的所有deb包 */
#sudo dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb_langpack_zh-CN/DEBS/*.deb
#安装中文离线帮助文件中的所有deb包
#sudo dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb_helppack_zh-CN/DEBS/*.deb
4. 测试
linux 命令改成自己安装的版本,我的是7.6
bash
libreoffice7.6 -help
这样就是装好了
!!!!!然而我没一次就装好,依次遇到了如下问题:
4.1 报错:/opt/libreoffice7.6/program/oosplash: error while loading shared libraries: libXinerama.so.1: cannot open shared object file: No such file or directory
程序无法加载名为libXinerama.so.1的共享库。这通常意味着系统缺少这个库或者该库没有被正确安装。
libXinerama是一个用于X Window系统的库,它用于处理多屏幕和全屏模式。
python
sudo apt-get update
sudo apt-get install libxinerama1
4.2 报错:/opt/libreoffice7.6/program/soffice.bin: error while loading shared libraries: libcairo.so.2: cannot open shared object file: No such file or directory
libcairo.so.2这个共享库文件无法找到。
Libcairo是一个用于创建二维矢量图形的库,是许多图形库(如GTK,Pango,rsvg等)的依赖项。
python
#确认libcairo.so.2是否存在于你的系统中
locate libcairo.so.2
python
#如果系统中没有libcairo.so.2,可能需要安装或重新安装libcairo。
sudo apt-get update
sudo apt-get install --reinstall libcairo2
python
#如果libcairo.so.2已经存在于你的系统中,那么可能是环境变量LD_LIBRARY_PATH没有设置正确。你需要将libcairo.so.2所在的目录添加到LD_LIBRARY_PATH中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/libcairo.so.2
#这里的/path/to/your/libcairo.so.2应该替换为libcairo.so.2文件的实际路径。你可以使用locate命令找到这个路径
4.3 no suitable windowing system found, exiting.
python
apt-get install libxt6
# 检查LibreOffice是否可以正常工作,不能则继续后续步骤
apt-get install libxrender1
4.4 Warning: failed to launch javaldx - java may not function correctly
python
sudo apt install openjdk-11-jre-headless
还不行的话那可能是缺少ibreoffice-java-common :
python
sudo apt install libreoffice-java-common
4.5 测试下命令行能否正确运行
python
libreoffice7.6 --headless --convert-to pdf:writer_pdf_Export test.docx --outdir pdf_test/
可以用了,哈哈哈!!!
5. 高兴太早了,中文乱码!!!
由于 linux 默认没有安装中文字体,所以导出有中文的文件会导致中文乱码。这里此次安装中文字体。
5.1 查看是否安装中文字体
python
# 显示为空表示没有安装中文字体, :前面有空格,后面没空格
fc-list :lang=zh
没有安装的话会提示安装:
python
apt install fontconfig
安装完再试一下:
python
# 显示为空表示没有安装中文字体, :前面有空格,后面没空格
fc-list :lang=zh
5.2 准备字体
可以从本地 windows 电脑中拷贝出字体文件,拷贝的目录为 C:\Windows\Fonts,找到 中文 文件:
5.3 导入字体
把上面那一堆中文字体文件放到 ubuntu /usr/share/fonts 目录下
然后进去该文件夹
python
cd /usr/share/fonts
ls
然后就看到好多后缀 .TTC 的文件
建立字体缓存信息
python
apt install xfonts-utils -y
mkfontscale
mkfontdir
fc-cache -fv
# 命令执行成功后终端最后一行会显示 fc-cache: succeeded
验证
python
fc-list :lang=zh
成了
再试下docx转pdf
python
libreoffice7.6 --headless --convert-to pdf:writer_pdf_Export test.docx --outdir pdf_test/
中文乱码没有了,太不容易了...
参考:
如何在 Ubuntu 中安装最新的 LibreOffice | Linux 中国
Linux 下的安装方法
官网7.6.6软件包
linux环境基于python语言docx转pdf
Libreoffice命令行实现office转pdf(Windows、Linux)
使用 LibreOffice 实现 Word 转 PDF(这个比较详细)
LibreOffice官网
记录libreoffice实现office转pdf(适用于windows、linux)
LibreOffice使用问题记录
在Ubuntu中打开LibreOffice报错:Warning: failed to launch javaldx - java may not function correctly
[Solved] Java problem, Libreoffice cannot find java and DirsyncPro also not
libreoffice - 命令 libreoffice --headless --convert-to pdf test.docx --outdir/pdf
不工作
stackoverflow: command-libreoffice-headless-convert-to-pdf-test-docx-outdir-pdf-is-not
使用 LibreOffice 将 word 转化为 pdf 并解决中文乱码问题