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