CentOS下使用LibreOffice进行文档格式转换的完整指南
在CentOS系统中,首先需要安装LibreOffice(开源办公套件,支持多种格式转换)。打开终端,执行以下命令:
sudo yum update -y && sudo yum install libreoffice -y
安装完成后,可通过libreoffice --version验证是否安装成功。
LibreOffice提供soffice(或libreoffice)命令行工具,无需打开图形界面即可完成转换。常见场景如下:
将.docx(或.doc)文件转换为PDF,命令格式为:
soffice --headless --convert-to pdf:writer_pdf_Export /path/to/input.docx
--headless:启用无头模式(无需显示界面);--convert-to:指定目标格式及导出器(writer_pdf_Export为Word转PDF的专用导出器);/path/to/input.docx:输入文件的绝对或相对路径。将.xlsx(或.xls)文件转换为CSV(逗号分隔值),命令格式为:
soffice --headless --convert-to csv:xls_csv_Export /path/to/input.xlsx
csv:xls_csv_Export:指定目标格式为CSV,并使用Excel的CSV导出器。将.pptx(或.ppt)文件转换为PDF,命令格式为:
soffice --headless --convert-to pdf:writer_pdf_Export /path/to/input.pptx
(注:PPT转PDF的导出器与Word相同,均为writer_pdf_Export)
若需要转换多个文件(如当前目录及子目录下的所有.docx文件),可结合find命令与循环实现:
find /path/to/input_dir -name "*.docx" | while read file; do
soffice --headless --convert-to pdf "$file"
done
find /path/to/input_dir -name "*.docx":查找输入目录下所有.docx文件;while read file; do ... done:逐行读取文件路径并执行转换。若需将转换后的文件保存到指定目录(如/path/to/output_dir),可修改命令如下:
OUTPUT_DIR="/path/to/output_dir"
mkdir -p "$OUTPUT_DIR" # 创建输出目录(若不存在)
find /path/to/input_dir -name "*.docx" | while read file; do
soffice --headless --convert-to pdf --outdir "$OUTPUT_DIR" "$file"
done
--outdir "$OUTPUT_DIR":指定输出目录;mkdir -p "$OUTPUT_DIR":确保输出目录存在(-p参数避免目录不存在时报错)。unoconv是基于LibreOffice的命令行工具,简化了部分操作,适合频繁转换的场景。
sudo yum install unoconv -y
安装完成后,可通过unoconv --version验证。
将Word文档转换为PDF:
unoconv -f pdf /path/to/input.docx
-f pdf:指定目标格式为PDF;/path/to/input.docx:输入文件路径。文泉驿微米黑、思源黑体),并将字体文件复制到/usr/share/fonts目录,然后执行fc-cache -fv更新字体缓存。&符号),避免阻塞当前终端:soffice --headless --convert-to pdf /path/to/large_file.docx &
.xls)可能存在兼容性问题,建议转换前测试。--headless模式,否则会弹出图形界面,影响自动化流程。通过以上步骤,可在CentOS系统中高效使用LibreOffice完成文档格式转换,满足日常办公或自动化处理需求。