CentOS 下使用 LibreOffice 进行文件转换
一 安装 LibreOffice
tar -xvf LibreOffice_7.5.1_Linux_x86-64_rpm.tar.gzcd LibreOffice_7.5.1_Linux_x86-64_rpm/RPMS && yum localinstall *.rpm/opt/libreoffice7.5/program 加入 PATH。二 命令行转换
/opt/libreoffice7.5/program/soffice --headless --convert-to <目标格式>:<过滤器> <源文件> --outdir <输出目录>/opt/libreoffice7.5/program/soffice --headless --convert-to pdf *.docx --outdir /data/out/opt/libreoffice7.5/program/soffice --headless --convert-to pdf:writer_pdf_Export /data/in.docx --outdir /data/out/opt/libreoffice7.5/program/soffice --headless --convert-to csv:"Text - txt - csv (StarCalc)" /data/in.xlsx --outdir /data/out/opt/libreoffice7.5/program/soffice --headless --convert-to jpg /data/in.pptx --outdir /data/out--headless:无界面运行(服务器必备)--nologo、--nofirststartwizard、--norestore:静默、跳过向导、禁止恢复会话三 以服务方式运行与并发转换
nohup /opt/libreoffice7.5/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &ps -ef | grep sofficekill -9 <PID>四 Java 集成 JodConverter 示例
DocumentConverter converter = LocalConverter.builder().officeHome("/opt/libreoffice7.5").build();converter.convert(new File("in.docx")).to(new File("out.pdf")).execute();LocalConverter 或 RemoteConverter 进行转换。五 常见问题与优化
fc-cache -fv 刷新字体缓存,再重启 LibreOffice 服务/转换。--headless,不要依赖图形界面;如出现 “X11 error: Can’t open display”,说明以 GUI 方式误启动,请改用无头参数。*.docx);导出到 CSV 等格式时显式指定过滤器以避免格式错配(如 "Text - txt - csv (StarCalc)")。