【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、以上是比较简单的文件预览功能,如有其他需求需自行拓展。
标签:office,org,new,File,import,jodconverter,open,out 来源: https://www.cnblogs.com/lightbc/p/15408549.html