网站建设资讯

NEWS

网站建设资讯

springboot2中怎么实现在线文档预览

springboot2中怎么实现在线文档预览,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联是一家集网站建设,绿春企业网站建设,绿春品牌网站建设,网站定制,绿春网站建设报价,网络营销,网络优化,绿春网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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


        
        
            org.jodconverter
            jodconverter-core
            4.2.2
        
        
        
            org.jodconverter
            jodconverter-spring-boot-starter
            4.2.2
        
        
        
            org.jodconverter
            jodconverter-local
            4.2.2
        

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

springboot2中怎么实现在线文档预览

第三步:核心类

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中怎么实现在线文档预览的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站名称:springboot2中怎么实现在线文档预览
分享地址:http://cdweb.net/article/psjoos.html