美文网首页
使用OpenOffice转换文档格式

使用OpenOffice转换文档格式

作者: yangkunn | 来源:发表于2021-03-30 16:14 被阅读0次

下载OpenOffice

下载地址:https://sourceforge.net/projects/openofficeorg.mirror/
下载完成后进入安装目录 C:\Program Files (x86)\OpenOffice 4\program,在此目录打开命令行输入以下命令

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;"

测试服务是否正常启动,如telnet该端口能通,说明服务正常启动了

telnet 127.0.0.1 8100

示例代码

package com.example.demo.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.StreamOpenOfficeDocumentConverter;
import java.io.File;
import java.net.ConnectException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import lombok.extern.slf4j.Slf4j;

/**
 * @author yangkun
 * @createTime 2020年11月18日 14:19:00
 */
@Slf4j
public class OpenOfficeDemo {

    public static boolean officeToPDF(String sourceFile, String destFile) {
        try {

            File inputFile = new File(sourceFile);
            if (!inputFile.exists()) {
                // 找不到源文件, 则返回false
                return false;
            }
            // 如果目标路径不存在, 则新建该路径
            File outputFile = new File(destFile);
            if (!outputFile.getParentFile().exists()) {
                outputFile.getParentFile().mkdirs();
            }
            //如果目标文件存在,则删除
            if (outputFile.exists()) {
                outputFile.delete();
            }
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
            connection.connect();
            //用于测试openOffice连接时间
            System.out.println("连接时间:" + df.format(new Date()));
            DocumentConverter converter = new StreamOpenOfficeDocumentConverter(
                connection);
            converter.convert(inputFile, outputFile);
            //测试word转PDF的转换时间
            System.out.println("转换时间:" + df.format(new Date()));
            connection.disconnect();
            return true;
        } catch (ConnectException e) {
            e.printStackTrace();
            System.err.println("openOffice连接失败!请检查IP,端口");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    public static void main(String[] args){
        officeToPDF("C:\\Users\\yangkun\\Desktop\\开发计划.xlsx","C:\\Users\\yangkun\\Desktop\\开发计划.pdf");
    }

}

相关文章

网友评论

      本文标题:使用OpenOffice转换文档格式

      本文链接:https://www.haomeiwen.com/subject/bgdghltx.html