调用OpenOffice将word格式文件转换为pdf格式

简介

OpenOffice 是一套跨平台的办公室软件套件,能在windows、Linux、MacOS X (X11)和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice.org 是自由软件,任何人都可以免费下载、使用及推广它。

注意:

JodConverter在maven中央仓库里只有2.2.1版本,2.2.1比较老,不支持office07以后的版本,而2.2.2版本可以支持,但是在中央仓库没有,需要手动下载jar包。
调用OpenOffice将word格式文件转换为pdf格式_第1张图片

环境搭建

OpenOffice 下载地址http://www.openoffice.org/
JodConverter 下载地址http://sourceforge.net/projects/jodconverter/files/JODConverter/

步骤一:安装openOffice

步骤二:JodConverter

解压后将目录下的所有jar包放在工程的lib下面或者采用引用的方式调用这些jar包。

步骤三:

OpenOffice第一次使用:
第一次调用,soffice需要注册,所以到soffice.exe的安装路径下双击soffice.exe,注册即可。

步骤四:

程序代码

package openoffice;

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.OpenOfficeDocumentConverter;

import java.io.File;
import java.io.IOException;
import java.net.ConnectException;

/**
 * @author liuzonghua
 * @Package openoffice
 * @Description:
 * @date 2019/2/1 9:20
 */
public class WordOrExcelToPDF {

    public static void main(String[] args) {

            WordOrExcel2Pdf("C:\\Users\\Admin\\Desktop\\2017年学生体质健康测试成绩.xls","C:\\Users\\Admin\\Desktop\\4"  + ".pdf");

    }


    // 将word格式的文件转换为pdf格式
    public static void  WordOrExcel2Pdf(String srcPath, String desPath) {
        // 源文件目录
        File inputFile = new File(srcPath);
        if (!inputFile.exists()) {
            System.out.println("源文件不存在!");
            return;
        }
        // 输出文件目录
        File outputFile = new File(desPath);
        if (!outputFile.getParentFile().exists()) {
            outputFile.getParentFile().exists();
        }
        try {
        // 调用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();


        // 转换word到pdf
        DocumentConverter converter = new OpenOfficeDocumentConverter(
                connection);
        converter.convert(inputFile, outputFile);

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

        // 关闭进程
        p.destroy();
        System.out.println("转换完成!");
        } catch (ConnectException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

步骤五

运行main方法

你可能感兴趣的:(java及javaweb)