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 文档的无界面转换。


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

相关推荐
wuhuhuan21 分钟前
Case Generator 平台升级
python·测试工具·自动化
RobinDevNotes25 分钟前
用 Profile 揪出大模型训练性能瓶颈
python·性能优化
重生之小比特29 分钟前
【Java SE】抽象类和接口
java·开发语言
李航198331 分钟前
用 DeepDraw 几何引擎开发建筑设计软件(六):创建画线工具
python·软件构建
AI 编程助手GPT32 分钟前
Python 备份 SQLite:为什么复制了 .db,恢复后还是少数据?
人工智能·python·ai·chatgpt
Lyyaoo.32 分钟前
【设计模型】策略模式
java
譕痕42 分钟前
Idea 集成 智能体开发工具“千问(qwen)”
java·ide·spring·语言模型
ShineWinsu44 分钟前
对于Git:远程操作的超详细保姆级解析
linux·git·gitee·github·远程仓库·分布式版本控制系统·远程操作
狗都不学爬虫_1 小时前
AI逆向 - 天御无感点击验证(补+纯)
爬虫·python·网络爬虫
用户8181870627461 小时前
第27章 消息丢失/重复消费的全链路排查(生产者→Broker→消费者)
java·后端