<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          分享一個(gè)超牛逼的 Java 文件在線預(yù)覽項(xiàng)目

          共 2615字,需瀏覽 6分鐘

           ·

          2021-03-24 12:30

          簡(jiǎn)介

          基于 OpenOffice 服務(wù)將文件 (.doc、.docx、.xls、.ppt) 轉(zhuǎn)化為pdf、html格式,然后直接在瀏覽器渲染輸出。

          內(nèi)置功能

          • 文件上傳功能

          • 文件轉(zhuǎn)換功能

          • 文件預(yù)覽功能

          • 遠(yuǎn)程文件預(yù)覽功能

          代碼集成

          基于 SpringBoot + OpenOffice 實(shí)現(xiàn)的項(xiàng)目案例,配置文件 application.properties 引入:
          # 默認(rèn)不開(kāi)啟 需要開(kāi)啟的設(shè)置成true
          jodconverter.local.enabled=true
          # 開(kāi)啟多個(gè)openOffice進(jìn)程,每個(gè)端口對(duì)應(yīng)一個(gè)進(jìn)程
          jodconverter.local.portNumbers=8100,8200
          # openOffice進(jìn)程重啟前的最大進(jìn)程數(shù)
          jodconverter.local.maxTasksPerProcess=100
          項(xiàng)目啟動(dòng)會(huì)自動(dòng)生成兩個(gè)轉(zhuǎn)換進(jìn)程,下面是偽代碼實(shí)現(xiàn):
          @RestController
          @RequestMapping("document")
          public class ConverterController {

          @Autowired
          private DocumentConverter documentConverter;

          /**
          * 文件上傳
          */

          @RequestMapping("/upload")
          public Result upload(MultipartFile file) {
          try {
          if (file != null) {
          File parentFile = createParentFile();
          String fileName = file.getOriginalFilename();
          String suffix = fileName.substring(fileName.lastIndexOf("."));
          String uuid = IdUtil.simpleUUID();
          fileName = uuid + suffix;
          File docFile = new File(parentFile, fileName);
          FileUtil.writeFromStream(file.getInputStream(), docFile);
          /**
          * 年月日目錄
          */

          String fileDay = DateUtil.thisYear() + "/" + (DateUtil.thisMonth() + 1) + "/"
          + DateUtil.thisDayOfMonth();
          String imagePath = SystemConstant.FILE + "/document/" + fileDay + "/" + fileName;
          /**
          * 實(shí)時(shí)轉(zhuǎn)換
          */

          logger.info("開(kāi)始轉(zhuǎn)換pdf......");
          File toFile = new File(parentFile, uuid + ".pdf");
          documentConverter.convert(docFile).to(toFile).execute();
          logger.info("開(kāi)始轉(zhuǎn)換html......");
          toFile = new File(parentFile, uuid + ".html");
          converter( docFile,toFile);
          return Result.ok(imagePath);
          } else {
          return Result.error();
          }
          } catch (Exception e) {
          logger.error("轉(zhuǎn)換異常{}",e);
          return Result.error();
          }
          }
          }

          軟件截圖


          小結(jié)

          網(wǎng)上很多文章,Java 集成 OpenOffice 已經(jīng)老得不能再老了,在 Linux 下還有各種啟動(dòng)問(wèn)題,本案例只需要在系統(tǒng)中安裝好相關(guān)服務(wù),程序啟動(dòng)會(huì)自動(dòng)生成 OpenOffice 進(jìn)程。

          源碼

          源碼地址:https://gitee.com/52itstyle/SPTools
          演示地址:https://tools.cloudbed.vip
          賬號(hào)密碼:admin admin2020

          -- END --

          我更新了《10萬(wàn)字Springboot經(jīng)典學(xué)習(xí)筆記》,點(diǎn)擊下面小卡片,進(jìn)入【Java開(kāi)發(fā)寶典】,回復(fù):筆記,即可免費(fèi)獲取。

                                                                 點(diǎn)贊是最大的支持 

          瀏覽 59
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲逼院| 中国美女一级片 | 综合大香蕉在钱 | 日本A V中文字幕 | 69久人妻无码精品一区 |