Springboot 实现在线预览,word文档 doc、xlsx、pdf、txt等

一、安装OpenOffice

OpenOffice下载

二、引入依赖




    org.jodconverter
    jodconverter-core
    4.2.2





    org.jodconverter
    jodconverter-spring-boot-starter
    4.2.2





    org.jodconverter
    jodconverter-local
    4.2.2




    commons-io
    commons-io
    2.6

三、配置application.yml文件

# 文件预览
jodconverter:
  local:
    enabled: true
    office-home: C:\Program Files (x86)\OpenOffice 4  # OpenOffice 默认安装位置
    max-tasks-per-process: 10
    port-numbers: 8101

四、代码演示

//用于转换
@Autowired
private DocumentConverter converter;

/**
 * 文件预览
 *
 * @param response
 */
@GetMapping("demo")
public void filePreview(HttpServletResponse response) {
    try {
        String filePath = "D:\\桌面\\技术服务合同范本.docx";                // 源文件地址(pdf,docx,doc都可以)
        File file = new File(filePath);

        // 设置响应格式防止乱码
        response.setContentType("application/pdf;charset=UTF-8");
        response.setHeader("X-Frame-Options", "SAMEORIGIN");

        if (StringUtils.endsWith(filePath, ".doc") || StringUtils.endsWith(filePath, ".docx")) {

            UUID uuid = UUID.randomUUID();
            File newFile = new File("D:\\桌面\\" + uuid + ".pdf");
            // 文件转换,将源文件转换为pdf
            converter.convert(file).to(newFile).execute();

            // 读取文件
            ServletOutputStream out = response.getOutputStream();
            InputStream in = new FileInputStream(newFile);
            int size = IOUtils.copy(in, out);
            in.close();
            out.close();
            System.out.println("该文件大小为:" + size + "字节");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (OfficeException e) {
        e.printStackTrace();
    }
}

你可能感兴趣的:(Utils,spring,boot,word,pdf,java,在线预览)