centos liboffice文件转换技巧
一、基础安装
-
安装LibreOffice
sudo yum update && sudo yum install libreoffice
(若需特定版本,可手动下载RPM包安装)
-
安装中文支持(避免乱码)
- 下载中文字体包(如思源黑体),解压后复制到
/usr/share/fonts/
。 - 执行
fc-cache -fv
刷新字体缓存。
- 下载中文字体包(如思源黑体),解压后复制到
二、命令行转换技巧
-
单文件转换
soffice --headless --convert-to pdf:writer_pdf_Export input.docx --outdir /output/path
--headless
:后台运行,无界面弹出。:writer_pdf_Export
:指定导出过滤器(不同格式需调整,如calc_pdf_Export
用于Excel转PDF)。
-
批量转换
find /input/dir -name "*.docx" | while read file; do soffice --headless --convert-to pdf "$file" --outdir /output/dir done
或使用
unoconv
(需先安装):unoconv -f pdf /input/dir/*.docx
-
自定义输出路径与权限
- 通过
--outdir
指定输出目录,确保目录存在且当前用户有写入权限。 - 转换后文件权限可通过
chmod
调整。
- 通过
三、常见问题解决
-
服务未启动
若使用unoconv
或远程转换,需启动LibreOffice服务:sudo systemctl start libreoffice.service sudo systemctl enable libreoffice.service
-
中文乱码
- 确认已安装中文字体并刷新缓存(
fc-cache -fv
)。 - 检查输出文件编码是否为UTF-8(可通过
file
命令查看)。
- 确认已安装中文字体并刷新缓存(
-
大文件转换失败
- 分批次转换或增加系统内存。
- 使用
--norestore
参数避免加载上次会话(节省资源)。
四、高级用法
- API集成:通过LibreOffice的UNO API(如Python的
uno
库)实现程序化转换。 - 远程转换:搭配
soffice
的--accept
参数开启远程服务,配合unoconv
或自定义脚本实现跨服务器转换。
参考来源:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!