1.openOffice说明:
OpenOffice 是一套跨平台的办公室软件套件,能在Windows、Linux、MacOS X (X11)和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice 是自由软件,任何人都可以免费下载、使用及推广它。
可以用openOffice进行文件格式的转化。Apache提供了相应的接口文档
openOffice下载
使用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地址:
github:https://github.com/kizunaY/simpleDemo