在 CentOS 上用 LibreOffice 将文件(如 docx、xlsx、pptx 等)转换为 PDF,常见做法如下:
yum install libreoffice-headless libreoffice-writer libreoffice-calc libreoffice-impress
dnf install libreoffice-headless libreoffice-writer libreoffice-calc libreoffice-impress
headless版本适合服务器,无界面转换
安装完成后验证:
libreoffice --version
# 或
soffice --version
libreoffice --headless --convert-to pdf 文件名.docx
或(等价):
soffice --headless --convert-to pdf 文件名.docx
转换后会在当前目录生成:
文件名.pdf
libreoffice --headless --convert-to pdf --outdir /data/pdf 文件名.docx
libreoffice --headless --convert-to pdf *.docx --outdir /data/pdf
通常是 缺少用户配置目录权限 或 已有 LibreOffice 进程
解决:
pkill -f oosplash
pkill -f soffice
并指定用户目录(推荐服务器使用):
libreoffice --headless \
-env:UserInstallation=file:///tmp/louser \
--convert-to pdf test.docx
安装中文字体:
yum install wqy-zenhei-fonts
# 或
yum install cjkuni-uming-fonts
确保服务器安装了与源文件相同的字体。
#!/bin/bash
libreoffice --headless --convert-to pdf "$1" --outdir /data/pdf
pandoc + wkhtmltopdf(适合 Markdown / HTML)unoconv(基于 LibreOffice,已较少维护)如果你有 具体文件类型(Word / Excel / PPT) 或 CentOS 版本,我可以给你更精确的命令。