前言
现有文档在线预览一般有两种方案:1、直接购买第三方成熟方案(如永中dcs,I DOC VIEW);2、利用第三方jar包自行开发。
下面主要展开自行开发方案。
主要步骤
-
流程
一般最简单的流程为,先上传文档获取文件源,然后再进行文档转换,最后前端展示转换后的文档。
一、文档上传
1)controller 层可以使用 MultipartFile 接收多个文件流,然后存于服务端
public Boolean uploadFile(MultipartFile file, String filePath,
String targetFileName) throws Exception {
boolean flag = true;
if (null == file) {
return false;
}
if (!validateFileType(file)) {
logger.info("文件类型校验失败!");
return false;
}
if (file.getSize() > FILESIZE) {
logger.info("文件大小超限!");
return false;
}
if (!createFolder(filePath)) {
logger.info(filePath + "创建失败!");
return false;
}
try {
File targetFile = new File(filePath, targetFileName + "."
+ getFileExt(file));
file.transferTo(targetFile);
} catch (Exception e) {
logger.error(e.getMessage());
flag = false;
}
return flag;
}
2)前端: enctype="multipart/form-data" 和 <input type="file"/> 结合使用
二、文档转换
文档转换主要有以下几种方式:
1、JODConverter + openoffice/libreoffice
程序利用 jodconverter 去连接 openoffice(或libreoffice) 服务,实现转换。类似于 MySql 和 数据库连接池。
参考:https://github.com/sbraconnier/jodconverter
maven dependency
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-core</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-local</artifactId>
<version>4.2.0</version>
</dependency>
<dependency&