采用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)。

相关推荐
hu556679821 分钟前
Adobe Acrobat DC PDF如何批量文本替换
adobe·pdf
CodeCraft Studio6 小时前
国产化Excel处理控件Spire.XLS教程:如何使用 Java 将 TXT 文本转换为 Excel 表格
java·word·excel·spire·文档格式转换·txt转excel
Datawhale10 小时前
《Hello-Agents》完整PDF首发,智能体教程免费下载!
pdf
hnxaoli10 小时前
win10程序(十四)pdf转docx简易版
开发语言·python·pdf
CodeCraft Studio10 小时前
PDF处理控件Aspose.PDF教程:在Python中向PDF文档添加页面
开发语言·python·pdf
开开心心就好19 小时前
电子报纸离线保存:一键下载多报PDF工具
网络·笔记·macos·pdf·word·音视频·phpstorm
裴嘉靖19 小时前
Vue 生成 PDF 完整教程
前端·vue.js·pdf
书中自有妍如玉1 天前
Node.Js 实现模板生成Word、Word转Pdf文件、Excel生成、上传和下载
pdf·node.js·word
啃火龙果的兔子1 天前
前端导出大量数据到PDF方案
前端·pdf
我只会写Bug啊2 天前
Vue文件预览终极方案:PNG/EXCEL/PDF/DOCX/OFD等10+格式一键渲染,开源即用!
前端·vue.js·pdf·excel·预览