1. 程式人生 > 其它 >【open office+jodconverter】檔案預覽

【open office+jodconverter】檔案預覽

一、環境/工具

  1、Windows10 64

  2、Apache OpenOffice 3.3.0 for Windows(OOo_3.3.0_Win_x86_install-wJRE_zh-CN.exe

  3、jdk8

  4、springboot專案工程

二、依賴

        <!--jodconverter-core-->
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-core</artifactId>
            <version>4.3
.0</version> </dependency> <!--jodconverter-local--> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-local</artifactId> <version>4.3.0</version> </dependency> <!--jodconverter-springboot--> <dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-spring-boot-starter</artifactId> <version>4.3
.0</version> </dependency>

三、配置屬性檔案

# jodconverter
jodconverter.local.enabled=true
# 開啟openoffice程序對應的埠
jodconverter.local.port-numbers=8200

四、編寫測試用介面

package com.example.controller;

import org.jodconverter.core.DocumentConverter;
import org.jodconverter.core.office.OfficeException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.
*; /** * Description:檔案轉pdf預覽 * Package:com.example.controller * * @author lightbc * @version 1.0 */ @RestController @RequestMapping("/preview") public class PreviewController { @Autowired private DocumentConverter converter; private String filePath="用於轉化的檔案全路徑(例:d:/xxx/1.docx)"; private String newFilePath="新生成的檔案的存放目錄(例:d:/temp)"; private String newFileName="test.pdf"; @RequestMapping(value = "/convert/file/2/pdf") public void convertFileToPDF(HttpServletResponse response){ File file=new File(filePath); InputStream in; OutputStream out; File tempFile=new File(newFilePath); if(!tempFile.exists()){ tempFile.mkdirs(); } File newFile=new File(tempFile.getAbsolutePath()+File.separator+newFileName); // 清除首部空白行 response.reset(); try { converter.convert(file).to(newFile).execute(); in=new BufferedInputStream(new FileInputStream(newFile)); byte[] b=new byte[in.available()]; in.read(b); out=response.getOutputStream(); out.write(b); in.close(); out.flush(); out.close(); } catch (OfficeException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

五、檔案預覽效果

六、總結

  1、Apache OpenOffice 3.3.0以上的Windows版本需要單獨下載32位JRE執行環境。

  2、以上是比較簡單的檔案預覽功能,如有其他需求需自行拓展。