SpringBoot使用openoffice进行各种格式转换为PDF(详细)

标签: OpenOffice  各种文件格式转PDF  java

记录一下openoffice转PDF使用方法

首先下载openoffice:

传送门:http://soft.onlinedown.net/soft/2311.htm 官网下载比较慢这个快

因为我下的是win版本安装的话就傻瓜式安装

安装完成直接启动服务:

								cd C:\Program Files (x86)\OpenOffice 4\program
								soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

pom.xml

我用的是jodconverter 2.2.1 但是2.2.2支持的转换格式跟多,但是2.2.2mvn里面没有

jodconverter 2.2.2 下载地址:

https://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/

    <dependency>
        <groupId>com.artofsolving</groupId>
        <artifactId>jodconverter</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.openoffice</groupId>
        <artifactId>jurt</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.openoffice</groupId>
        <artifactId>ridl</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.openoffice</groupId>
        <artifactId>juh</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.openoffice</groupId>
        <artifactId>unoil</artifactId>
        <version>3.0.1</version>
    </dependency>

具体代码

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;

import java.io.File;
import java.io.IOException;

public class Office4Pdf {
    public static void Office2Pdf(String srcPath, String desPath) throws IOException {
        // 源文件目录
        File inputFile = new File(srcPath);
        if (!inputFile.exists()) {
            System.out.println("源文件不存在!");
            return;
        }
        // 输出文件目录
        File outputFile = new File(desPath);
        if (!outputFile.getParentFile().exists()) {
            outputFile.getParentFile().exists();
        }
        // 调用openoffice服务线程
        String command = "C:/Program Files (x86)/OpenOffice 4/program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";
        Process p = Runtime.getRuntime().exec(command);

        // 连接openoffice服务
        OpenOfficeConnection connection = new SocketOpenOfficeConnection(
                "127.0.0.1", 8100);
        connection.connect();

        // 支持转换txt doc ppt xls文件到pdf
        DocumentConverter converter = new StreamOpenOfficeDocumentConverter(
                connection);
        converter.convert(inputFile, outputFile);

        // 关闭连接
        connection.disconnect();

        // 关闭进程
        p.destroy();
        System.out.println("转换完成!");
    }
}

测试

在这里插入是弟弟述测试结果
在这里插入图片描述
转换完成
目前我所用的openoffice2.2.1这个包目前我测试的结果来看
// 支持转换txt doc ppt xls文件到pdf
大家去测吧如果能支持跟多格式的转换就更加好

原文链接:加载失败,请重新获取