在 CentOS 上用 LibreOffice 批量转换文件(如 docx→pdf、xls→csv 等),最常用、最可靠的方式是 命令行 + 脚本。下面按常见需求给你说明。
libreoffice --headless --convert-to pdf 文件名.docx
常用参数说明:
--headless:无界面运行--convert-to:目标格式(pdf、csv、txt 等)--outdir:输出目录示例:
libreoffice --headless --convert-to pdf --outdir /data/pdf test.docx
for f in *.docx; do
libreoffice --headless --convert-to pdf "$f"
done
指定输出目录:
mkdir -p pdf
for f in *.docx; do
libreoffice --headless --convert-to pdf --outdir pdf "$f"
done
for f in *.xlsx; do
libreoffice --headless --convert-to csv "$f"
done
⚠️ 注意:
find . -name "*.docx" -exec libreoffice --headless --convert-to pdf {} \;
或输出到统一目录:
find . -name "*.docx" -exec libreoffice --headless --convert-to pdf --outdir /data/pdf {} \;
no suitable windowing environment确保使用:
libreoffice --headless
不要混用 soffice 和桌面环境
加 --nofirststartwizard 和 --norestore:
libreoffice --headless --nofirststartwizard --norestore --convert-to pdf file.docx
安装中文字体:
yum install -y wqy-zenhei-fonts
import subprocess, glob
for f in glob.glob("*.docx"):
subprocess.run([
"libreoffice", "--headless",
"--convert-to", "pdf", f
])
| 源文件 | 目标格式 | 命令 |
|---|---|---|
| docx | --convert-to pdf |
|
| xlsx | csv | --convert-to csv |
| pptx | --convert-to pdf |
|
| txt | --convert-to pdf |
如果你能告诉我:
我可以直接给你一条 可直接用的命令或脚本。