1.openOffice说明:
OpenOffice 是一套跨平台的办公室软件套件,能在Windows、Linux、MacOS X (X11)和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice 是自由软件,任何人都可以免费下载、使用及推广它。
可以用openOffice进行文件格式的转化。Apache提供了相应的接口文档
使用openOffice转换文件格式
首先导入相关的Jar包/maven依赖。
所需要的Jar包如下:
- commons-cli-xx.jar
- commons-io-xx.jar
- jodconverter-core-3.0-beta-4.jar
- json-xxx.jar
- juh-xx.jar
- jurt-xx.jar
- ridl-xx.jar
- unoil-xx.jar
maven依赖为:在pom.xml中添加下段配置
<dependency> <groupId>org.jodconverter</groupId> <artifactId>jodconverter-core</artifactId> <version>4.0.0-RELEASE</version> </dependency>
准备完成…
1.创建一个OfficeManager,使用OfficeManager。开启OpenOffice服务,OfficeManager可以通过DefaultOfficeManagerBuilder生成
下边上代码:
/** * * @return 返回一个OfficeManager实例,用于处理转换业务 * @throws OfficeException */ private static OfficeManager getOfficeManager() throws OfficeException { DefaultOfficeManagerBuilder builder=new DefaultOfficeManagerBuilder(); //此处入参可以填写OpenOffice安装路径,本例子中,openOffice安装在E盘 builder.setOfficeHome("E:/DevelopTools/openOffice/workspace"); OfficeManager officeManager =builder.build(); //officeManager提供了开启OpenOffice的API服务 officeManager.start(); return officeManager; }
2.使用OfficeDocumentConverter,调用转换文件的API服务,提前设置一个接受文件。可按自己喜欢设置路径
public static File openOfficeExperience(String sourceFilePath){ OfficeManager officeManager; String name="convertFile.pdf"; File outputFile=new File(name); try { //开启OpenOffice服务 OfficeManager manage=getOfficeManager(); File sourceFile = new File(sourceFilePath); //设置转换后的文件存储路径,文件名 //使用OfficeDocumentConverter类转换文件,其实核心就这一句 OfficeDocumentConverter converter=new OfficeDocumentConverter(manage); converter.convert(sourceFile,outputFile); }catch(Exception e) { e.printStackTrace(); }finally { //关闭资源占用 if(officeManager != null){ try { officeManager.stop(); } catch (OfficeException e) { e.printStackTrace(); } } } return outputFile; }
如此就可以将一个文件转化为pdf格式了。
这里简单运行了一下。可以发现在本地文件夹下出现了个文件:
其实就是之前自个指定的文件名。
使用pdf.js在线预览文件
首先下载PDF.js
下载路径
下载解压放入项目路径下,目录结构如下:
编写简单的前端页面例子view.html:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script> function detail() { window.open("/web/viewer.html?file=/convertFile.pdf"); } </script> </head> <body> <h1 onclick="detail()">点击查看PDF文件</h1> </body> </html>
配置上简单的控制器:
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ViewPDFController { @RequestMapping("/view") public String view() { return "view"; } }
添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
运行访问:http://localhost:8080/view,结果如下
附个代码Code地址:
文章来源: https://blog.csdn.net/weixin_44122500/article/details/92657280