温馨提示×

centos liboffice转pdf失败原因

小樊
33
2026-09-15 12:05:14
栏目: 智能运维

CentOS 上使用 LibreOffice 将文档(如 docx/xlsx/pptx)转换为 PDF 失败,常见原因和解决办法如下:


一、最常见原因

1️⃣ 没有安装中文字体(中文乱码 / 转换中断)

LibreOffice 在服务器上常缺少中文字体,导致转换失败或 PDF 无内容。

解决:

yum install -y wqy-zenhei-fonts wqy-microhei-fonts

或手动复制 Windows 字体到:

/usr/share/fonts/
fc-cache -fv

2️⃣ 在无桌面环境(Headless)下未加参数

必须使用 headless 模式。

正确命令:

libreoffice --headless --convert-to pdf file.docx

或:

soffice --headless --convert-to pdf file.docx

3️⃣ LibreOffice 未完全安装

很多 CentOS 只装了 libreoffice-core,缺组件。

解决:

yum groupinstall "Office Suite and Productivity"

yum install libreoffice-writer libreoffice-calc libreoffice-impress

4️⃣ 文件被锁定 / 正在使用

LibreOffice 不支持并发。

解决:

  • 确保文件未被占用
  • 使用临时目录拷贝后再转换

5️⃣ 权限问题(www / nobody 用户)

Web 服务调用时常见。

检查:

ps aux | grep soffice

确保运行用户有:

  • 读文件权限
  • 写输出目录权限

二、其他常见原因

6️⃣ Java 环境问题

某些格式依赖 Java。

yum install java-1.8.0-openjdk

7️⃣ 文档本身损坏

尝试用 LibreOffice 手动打开验证。


8️⃣ SELinux 限制

getenforce

如为 Enforcing,可临时测试:

setenforce 0

三、推荐稳定转换命令(生产环境)

soffice --headless --nofirststartwizard \
  --convert-to pdf --outdir /tmp/out /data/test.docx

四、排查建议

查看详细错误:

soffice --headless --convert-to pdf test.docx 2>&1

如果你能提供:

  • 具体命令
  • 报错信息
  • CentOS 版本 & LibreOffice 版本

我可以更精确帮你定位。

0