Ubuntu 18.04 安装 LibreOffice(用于 Word 在线预览转换)

Ubuntu 18.04 安装 LibreOffice(用于 Word 在线预览转换)

适用场景: 服务器端需要将 .doc / .docx 转换为 HTML 或 PDF

操作用户: root 或具有 sudo 权限的用户


一、安装命令(稳定版)

⚠️ 避免踩坑: 不要安装 libreoffice-writer-nogui,容易与系统源冲突导致依赖问题。

执行以下命令:

bash 复制代码
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
  libreoffice-writer \
  libreoffice-common \
  libreoffice-java-common \
  fonts-noto-cjk

参数说明:

包名 作用
libreoffice-writer Writer 文字处理组件(核心)
libreoffice-common 公共基础文件
libreoffice-java-common Java 运行时支持(部分转换依赖)
fonts-noto-cjk 中日韩字体,避免中文乱码

二、验证安装是否成功

2.1 查看 soffice 路径

bash 复制代码
which soffice

预期输出:/usr/bin/soffice

2.2 查看版本号

bash 复制代码
soffice --version

预期输出类似:

text 复制代码
LibreOffice 6.0.7.3 00m0(Build:3)

三、(可选)指定自定义路径

如果 soffice 不在默认路径,可在 .env 中配置(以 Laravel 为例):

bash 复制代码
CONTRACT_LIBREOFFICE_PATH=/usr/bin/soffice

四、测试转换功能(推荐执行)

用一个测试文件验证是否能正常转换:

bash 复制代码
# 准备测试文件
echo "test content" > /tmp/test.doc

# 执行转换
soffice --headless --nologo --nofirststartwizard --norestore \
  --convert-to html --outdir /tmp /tmp/test.doc

# 查看输出
ls -la /tmp/test.html

如果生成了 /tmp/test.html 文件,说明安装成功且可用。


五、常见问题速查

问题 解决方法
soffice: command not found 检查是否安装成功,或使用 find /usr -name soffice 查找路径
中文转 HTML 出现方块/乱码 确保已安装 fonts-noto-cjk,或补充安装 fonts-wqy-zenhei
转换无报错但无输出文件 检查 --outdir 目录是否可写
例子:PHP 调用 soffice 失败(程序已装好,但接口仍报错) 检查 PHP 配置文件 php.ini 中的 disable_functions 是否禁用了 execshell_exec。查看命令: `php -i

六、安装完成

执行完以上步骤,LibreOffice 即可供 PHP/Python/Java 等后端程序通过 exec / shell_exec 调用,用于 Word 文档的无界面转换。


原创整理,转载注明出处。

相关推荐
-今昭-1 小时前
OpenStack Dashboard 部署与图形化创建云主机实战指南
开发语言·php
TO_ZRG1 小时前
Unity 编辑器之 SettingsProvider、Hierarchy、Project、SearchField
java·unity·编辑器
王志来137944730081 小时前
多元场景催生工控服务器机箱差异化需求匀天以柔性适配回应行业挑战
运维·服务器·人工智能·python
吴声子夜歌2 小时前
Java面试——Spark原理及应用(二)
java·面试·spark
敲上瘾2 小时前
Redis持久化存储机制:从RDB到AOF再到混合持久化的配置与实践
linux·数据库·redis·缓存
小张同学a.2 小时前
OpenStack 私有云实战 2—— Glance 镜像与 Nova 计算服务搭建
linux·运维·服务器·openstack
吴声子夜歌2 小时前
Java面试——Spark原理及应用(一)
java·面试·spark
xiaoye-duck2 小时前
《Linux网络编程》TCP 网络编程(下):基于 TCP 多线程通用字典服务 + 远程命令执行实战
linux·服务器·tcp/ip
陈让然3 小时前
VS Code C/C++ 插件 cpptools 内存占用异常
linux·运维