采用libreoffice将word、excel等文件转换为pdf格式

一、安装LibreOffice

LibreOffice官网下载链接(https://downloadarchive.documentfoundation.org/libreoffice/),下载对应系统的libreoffice后,按照步骤安装即可。

(注:在某项目中,采用libreoffice转码office文件为浏览器可预览文件时,libreoffice安装完成、环境配置后,服务器依旧不能访问libreoffice进行转码,此时将libreoffice的版本更换为LIbreOffice_25.2.5.2就可以了,应该是系统不兼容导致的,如遇同样的问题,可以切换版本试试)

安装完成后检查program文件夹中是否存在soffice.exe文件。

二、代码实现

代码中采用ProcessBuilder调用soffice.exe。

复制代码
//其中的sofficePath安装路径下的programme文件夹中的soffice.exe 
//示例:D:/Libreoffice/program/soffice.exe

ProcessBuilder pb = new ProcessBuilder(
                sofficePath,
                "--headless",
                "--convert-to", "pdf",
                "--outdir", outputDir.getAbsolutePath(),
                wordFile.getAbsolutePath()
        );

  pb.inheritIO();
        Process process = pb.start();
        int exitCode = process.waitFor();

        if (exitCode != 0) {
            throw new RuntimeException("LibreOffice 转换失败,exitCode=" + exitCode);
        }

以上的转换方式时间比较慢、存在并发限制及一定的资源消耗,高并发的可以采用LibreOffice 服务模式(UNO Server)。

相关推荐
Metaphor6925 小时前
Java 将 PDF 转换为 HTML:高效解决方案与实践
java·经验分享·pdf·html
热爱生活的五柒12 小时前
插入mathtype/latex公式在word中行间距变高了
word
开开心心就好20 小时前
PDF清晰度提升工具,让模糊文档变清晰
java·服务器·前端·python·智能手机·pdf·ocr
热爱生活的五柒20 小时前
排版使用latex排版还是word排版更容易通过mdpi remote sensing的审稿?
word·latex
阿幸软件杂货间21 小时前
使用Python一站式提取Word、Excel、PDF 和PPT文档内容v1.0
python·word·excel
逆天小北鼻1 天前
ng 映射pdf文件
运维·服务器·pdf
2501_930707781 天前
使用C#代码自定义密码加密Word
开发语言·c#·word
IT北辰1 天前
用Python一键整理文件:自动分类DOCX与PDF,告别文件夹杂乱
开发语言·python·pdf
念你那丝微笑1 天前
vue使用html-docx基于TinyMCE 导出Word 文档
vue.js·html·word