简介
OpenOffice 是 Apache 开源的一个办公组件,可以直接到官网下载使用。适用windows、linux、mac等各大平台,我们要在代码中使用它,实现一些 web 项目中的附件预览功能。
安装openoffice插件
SpringBoot使用openoffice进行各种格式转换为PDF(详细)
- 下载安装插件,官网下载地址 :http://www.openoffice.org/zh-cn/download/
安装教程
- 双击安装包 打开运行程序 这里是安装向导首界面 点击下一步按钮
- 点击浏览按钮 选择安装目录路径 如图所示
- 会自动检测系统中的插件 如果需要会自动安装哦
- 输入使用的用户 以及选择用户权限 点击下一步按钮
- 这里勾选通常安装 简单而且点击下一步
- 是否在桌面上创建一个快捷方式 建议勾选哦
- 这是安装完成界面 点击完成关闭安装向导
从4.1.4到4.1.9版本安装步骤基本一样。
- 双击安装包 打开运行程序 这里是安装向导首界面 点击下一步按钮
- 进入安装目录中的program目录:cd C:\develop\ProgramFiles\OpenOffice4\program
- 启动:soffice -headless -accept=“socket,host=127.0.0.1,port=8100;urp;” -nofirststartwizard
代码启动服务:
下面展示一些启动和关闭代码片
。
/**
* 开启代码:
*/
public static void startOpenOfficeService() {
String command = Constant.OpenOffice_PATH+"program/soffice.exe -headless -accept=\"socket,host="+Constant.OpenOffice_IP+",port="+Constant.OpenOffice_PORT+";urp;\" -nofirststartwizard";
try {
Process pro = Runtime.getRuntime().exec(command);
} catch (IOException e) {
System.out.println("OpenOffice服务启动失败");
}
}
/**
*关闭代码
**/
public static void shutdownOpenOfficeService() {
try {
Process pro = Runtime.getRuntime().exec("tasklist");
Scanner in = new Scanner(pro.getInputStream());
while(in.hasNext()) {
String proString = in.nextLine();
if(proString.contains("soffice.exe")) {
String cmd = "taskkill /f /im soffice.exe";
pro = Runtime.getRuntime().exec(cmd);
System.out.println("soffice.exe关闭");
}
if(proString.contains("soffice.bin")) {
String cmd = "taskkill /f /im soffice.bin";
pro = Runtime.getRuntime().exec(cmd);
System.out.println("soffice.bin关闭");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
package com.my.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
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;
/**
* 利用jodconverter(基于OpenOffice服务)将文件(*.doc、*.docx、*.xls、*.ppt)转化为html格式或者pdf格式,
* 使用前请检查OpenOffice服务是否已经开启, OpenOffice进程名称:soffice.exe | soffice.bin
*
* @author yjclsx
*/
public class Doc2HtmlUtil {
private static Doc2HtmlUtil doc2HtmlUtil;
/**
* 获取Doc2HtmlUtil实例
*/
public static synchronized Doc2HtmlUtil getDoc2HtmlUtilInstance() {
if (doc2HtmlUtil == null) {
doc2HtmlUtil = new Doc2HtmlUtil();
}
return doc2HtmlUtil