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 是否禁用了 exec 或 shell_exec。查看命令: `php -i

六、安装完成

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


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

相关推荐
Cc.Y8 小时前
Java零基础入门:封装与继承 —— 从“裸奔“到“穿衣服“,从“重复造轮子“到“站在巨人肩膀上“
java·开发语言
Escalating_xu8 小时前
【C 语言】深入理解指针(4):回调函数、qsort、void * 与泛型排序的模拟实现
java·c语言·开发语言
忆挽篱笙歌8 小时前
makefil
linux·运维·服务器
Shaoshing8 小时前
雪花算法
java
w_zero_one8 小时前
链表(4)
java·数据结构·算法
见叶之秋8 小时前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
菜_小_白9 小时前
codex
linux·vscode·ai
MayBaymax9 小时前
MQ 基础概念与架构
java·中间件·架构·java-rocketmq
zhangrelay9 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
逗脑IDE9 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发