分享一个超牛逼的 Java 文件在线预览项目
架构真经
共 2329字,需浏览 5分钟
· 2021-05-20
简介
内置功能
文件上传功能
文件转换功能
文件预览功能
远程文件预览功能
代码集成
# 默认不开启 需要开启的设置成true
jodconverter.local.enabled=true
# 开启多个openOffice进程,每个端口对应一个进程
jodconverter.local.portNumbers=8100,8200
# openOffice进程重启前的最大进程数
jodconverter.local.maxTasksPerProcess=100
@RestController
@RequestMapping("document")
public class ConverterController {
@Autowired
private DocumentConverter documentConverter;
/**
* 文件上传
*/
@RequestMapping("/upload")
public Result upload(MultipartFile file) {
try {
if (file != null) {
File parentFile = createParentFile();
String fileName = file.getOriginalFilename();
String suffix = fileName.substring(fileName.lastIndexOf("."));
String uuid = IdUtil.simpleUUID();
fileName = uuid + suffix;
File docFile = new File(parentFile, fileName);
FileUtil.writeFromStream(file.getInputStream(), docFile);
/**
* 年月日目录
*/
String fileDay = DateUtil.thisYear() + "/" + (DateUtil.thisMonth() + 1) + "/"
+ DateUtil.thisDayOfMonth();
String imagePath = SystemConstant.FILE + "/document/" + fileDay + "/" + fileName;
/**
* 实时转换
*/
logger.info("开始转换pdf......");
File toFile = new File(parentFile, uuid + ".pdf");
documentConverter.convert(docFile).to(toFile).execute();
logger.info("开始转换html......");
toFile = new File(parentFile, uuid + ".html");
converter( docFile,toFile);
return Result.ok(imagePath);
} else {
return Result.error();
}
} catch (Exception e) {
logger.error("转换异常{}",e);
return Result.error();
}
}
}
软件截图
![null](https://filescdn.proginn.com/1fef6a8e4c455575faf3b98a952b1ad3/ae462041625a0b1213ebb4cc7e1a7bda.webp)
![null](https://filescdn.proginn.com/b45d50a08dbee13f27035394da7fadcf/f733414c3ec04165c33658d5ddfac5f0.webp)
![null](https://filescdn.proginn.com/e23b63bb69ea99ccd52a91c6ea57687a/c26832e4aa1326cc097fb0327fabc71c.webp)
![](https://filescdn.proginn.com/a171a6dece9eb75e89103eb982c6f4a6/b2d81116fbf9e474a702d85d5398e621.webp)
![null](https://filescdn.proginn.com/61a4b342c9945f0f98c3e1e4f686f2b5/31cc55ec922d134a14c9fe65ffdf5a0d.webp)
![null](https://filescdn.proginn.com/0670ec1cda03888605a88c190f953578/57cb8426b9bb5a83919d6d42518da41d.webp)
![null](https://filescdn.proginn.com/1d1c6300d57e072b80afa1fdedcaa2b9/15e6540cf5db647338c486594cd311b2.webp)
小结
网上很多文章,Java 集成 OpenOffice 已经老得不能再老了,在 Linux 下还有各种启动问题,本案例只需要在系统中安装好相关服务,程序启动会自动生成 OpenOffice 进程。
源码地址:https://gitee.com/52itstyle/SPTools
演示地址:https://tools.cloudbed.vip
账号密码:admin admin2020
评论