springboot2整合在线文档预览,几行代码的事情

编程

第一步,需要引入相应的jar:

<!--在线文件预览================================================================-->

<!--jodconverter 核心包-->

<dependency>

<groupId>org.jodconverter</groupId>

<artifactId>jodconverter-core</artifactId>

<version>4.2.2</version>

</dependency>

<!--springboot支持包,里面包括了自动配置类 -->

<dependency>

<groupId>org.jodconverter</groupId>

<artifactId>jodconverter-spring-boot-starter</artifactId>

<version>4.2.2</version>

</dependency>

<!--jodconverter 本地支持包 -->

<dependency>

<groupId>org.jodconverter</groupId>

<artifactId>jodconverter-local</artifactId>

<version>4.2.2</version>

</dependency>

第二步,在配置文件中加入关键配置:

第三步:核心类

package com.yunji.kwxt.document;

import com.yunji.kwxt.common.enums.ResultEnum;

import com.yunji.kwxt.common.model.ResultJson;

import org.apache.commons.io.IOUtils;

import org.jodconverter.DocumentConverter;

import org.jodconverter.office.OfficeException;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServletResponse;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

/**

* @author :LX

* 创建时间: 2019/11/4. 17:42

* 地点:广州

* 目的: 在线文档预览

*

* 总的来说,这部分的代码是可以使用的,但是效果并没有预期的好,第一,中文乱码问题没解决,第二,格式并没有预期的好。

* 业务逻辑这一块,不推荐这么弄,建议从源头控制上传文件,然后来预览操作。

*

* 如果后续需要使用,1 放开maven中的 jodconverter 包

* 2 将 application-config.properties 文件相应 jodconverter 的配置放开

* 3 将该类下面的 view 方法放开,调用 view 即可。

*

* 备注说明:

*/

@Controller

@RequestMapping("/doc")

public class DocumentController {

private static Logger log = LoggerFactory.getLogger(DocumentController.class);

@Resource

private DocumentConverter documentConverter;

/**

* 在线预览

* @param response

* @return

*/

@RequestMapping(value = "/view", method = RequestMethod.GET)

@ResponseBody

public ResultJson view(HttpServletResponse response){

//需要转换的文件

File file = new File("E:\下载\kd.xlsx");

//文件转换后的地址

File toFile = new File("E:\temp");

if (!toFile.exists()){

toFile.mkdirs();

}

ServletOutputStream outputStream = null;

InputStream in = null;

//关键方法,转换为PDF

try {

documentConverter.convert(file).to(new File("E:/temp/1.pdf")).execute();

outputStream = response.getOutputStream();

in = new FileInputStream(new File("E:/temp/1.pdf"));

//将文件转换复制到流

IOUtils.copy(in, outputStream);

} catch (OfficeException e) {

e.printStackTrace();

log.error("转换文件失败");

} catch (IOException e) {

e.printStackTrace();

log.error("获取流失败");

} finally {

if (in != null){

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (outputStream != null){

try {

outputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return new ResultJson(null, ResultEnum.SUCCESS.getStatus(), "成功", null);

}

}

 

以上是 springboot2整合在线文档预览,几行代码的事情 的全部内容, 来源链接: utcz.com/z/510433.html

回到顶部