使用springboot+open office实现文件在线预览

本文介绍了如何使用OpenOffice办公组件在SpringBoot项目中实现文件在线预览功能。首先概述了OpenOffice的基本信息及其跨平台特性,接着详细讲解了OpenOffice插件的下载安装步骤,包括选择安装路径、设置用户权限等。文章最后提到了在Windows系统中通过命令行启动服务的方式,并展示了相关的工具类代码和POM依赖,以便读者在自己的项目中实现相同功能。
摘要由CSDN通过智能技术生成

简介

OpenOffice 是 Apache 开源的一个办公组件,可以直接到官网下载使用。适用windows、linux、mac等各大平台,我们要在代码中使用它,实现一些 web 项目中的附件预览功能。

安装openoffice插件

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

  1. 下载安装插件,官网下载地址http://www.openoffice.org/zh-cn/download/

    安装教程

    1. 双击安装包 打开运行程序 这里是安装向导首界面 点击下一步按钮
      在这里插入图片描述
    2. 点击浏览按钮 选择安装目录路径 如图所示
      在这里插入图片描述
    3. 会自动检测系统中的插件 如果需要会自动安装哦
      在这里插入图片描述
    4. 输入使用的用户 以及选择用户权限 点击下一步按钮
      在这里插入图片描述
    5. 这里勾选通常安装 简单而且点击下一步
      在这里插入图片描述
    6. 是否在桌面上创建一个快捷方式 建议勾选哦
      在这里插入图片描述
    7. 这是安装完成界面 点击完成关闭安装向导
      在这里插入图片描述
      从4.1.4到4.1.9版本安装步骤基本一样。
  1. 安装完成直接启动服务;

    启动服务

    windows系统:

    命令行启动服务:

  • 进入安装目录中的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();
		}
	}
  1. 工具类,全部代码;

    工具类

    下面展示工具类全部代码
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值