java work,excel,ppt转pdf

Controller,引用到FileChangeUtils.java,PPTtoPDF.java

/**
 * 文件预览
 */
@ApiOperation("文件预览")
@GetMapping("/getShowFile/{id}")
@ApiImplicitParam(name = "id", value = "文件id", required = true)
public void getShowFile(HttpServletResponse response, @PathVariable("id") Long id) throws IOException{
   
    // 查询文件信息
    DdsDocumentEntity info = ddsDocumentService.getById(id);
    InputStream inputStream = null;
    try {
   
    	//region 获取文件流
        ActionResult result = ossClient.presignedObjectUrl(id.toString());
        List<PresignedObjectUrlDTO> list = (List<PresignedObjectUrlDTO>)result.getData();
        if(list.size() > 0) {
   
            //url解码
            PresignedObjectUrlDTO presignedObjectUrlDTO = list.get(0);
            URL url = new URL(java.net.URLDecoder.decode(presignedObjectUrlDTO.getPresignedObjectUrl(), "UTF-8"));
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            //设置超时间为3秒
            conn.setConnectTimeout(3 * 1000);
            //防止屏蔽程序抓取而返回403错误
            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            //得到输入流
            inputStream = conn.getInputStream();
        }
        //endregion
    } catch (Exception e) {
   
        log.error("文件不存在!" + e.getLocalizedMessage());
    }
    Assert.notNull(inputStream, "文件不存在!");
    //转换pdf完成数据流
    OutputStream os = response.getOutputStream();
    try {
   
        String suffix = info.getDocumentName().substring(info.getDocumentName().lastIndexOf(".") + 1);
        if ("xls".equals(suffix) || "xlsx".equals(suffix)) {
   
            //去除水印
            FileChangeUtils.GetLicense("excel");
            // 原始excel路径
            com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(inputStream);
            PdfSaveOptions options = new PdfSaveOptions(SaveFormat.PDF);
            //设置输出excel格式
            options.setOnePagePerSheet(true);
            //写出转换的文件
            wb.save(os, options);
        } else if ("doc".equals(suffix) || "docx".equals(suffix)) {
   
            FileChangeUtils.GetLicense("word");
            com.aspose.words.Document doc = new com.aspose.words.Document(inputStream); //Address是将要被转化的word文档
            doc.save(os, com.aspose.words.SaveFormat.PDF);//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
        } else if("ppt".equals(suffix) || "pptx".equals(suffix)){
   
            new PPTtoPDF().convertPPTToPDF(inputStream,response.getOutputStream(),suffix);
        } else if("pdf".equals(suffix)){
   
            byte[] content = new byte[1024];
            int length;
            while ((length = inputStream.read(content,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值