在 CentOS 上可以使用 LibreOffice 的命令行工具 来转换文档格式,不需要打开图形界面,非常适合服务器环境。
which libreoffice
# 或
which soffice
如果没有安装:
sudo yum install libreoffice
# 或(较新版本)
sudo dnf install libreoffice
libreoffice --headless --convert-to pdf example.docx
或:
soffice --headless --convert-to pdf example.docx
libreoffice --headless --convert-to docx example.pdf
常用格式:
pdfdocxdocxlsxcsvpptxtxthtml示例:
libreoffice --headless --convert-to xlsx example.csv
libreoffice --headless --convert-to pdf --outdir /data/output example.docx
for f in *.docx; do
libreoffice --headless --convert-to pdf "$f"
done
或一次性转换整个目录:
libreoffice --headless --convert-to pdf *.docx
LibreOffice 不允许 root 直接运行,否则会报错:
Cannot run as root user
解决方式:
sudo -u normaluser libreoffice --headless --convert-to pdf file.docx
或创建专用用户运行。
CentOS 服务器常缺中文字体:
yum install -y wqy-zenhei-fonts
# 或
yum install -y google-noto-cjk-fonts
安装后重启 LibreOffice 进程。
有时转换卡住:
pkill -f soffice
sudo -u officeuser \
libreoffice --headless --convert-to pdf \
--outdir /home/officeuser/output \
/home/officeuser/docs/report.docx
如果你有 具体格式(如 docx → pdf / excel → csv) 或 CentOS 版本(7 / 8 / Stream),我可以给你更精确的命令。