java使用aspose实现文件预览工功能

前后端分离项目实现文件预览

效果图:

1.实现思路

用户上传的文件类型多种多样,这里主要是实现对office文件的预览,预览一般是不需要编辑的,所以预览时pdf文件最为方便,我们的思路就是将用户上传的各种office文件转为PDF文件保存下来,用户预览时直接读取PDF,使用浏览器自带的PDF预览功能便可进行预览。核心功能就在于如何将office文件转换为PDF,这里主要用到的技术apose,它是一个很强大的office文档处理软件,可以完美的实现word文档转换为pdf文件,缺点就是软件是需要付费的,否则有水印。但是网上可以找到很多的破解版jar包,测试效果还是很不错的,而且使用简单,需要下载三个jar包,破解版:aspose-slides-15.9.0.、aspose-cells-8.5.2、aspose-words-16.8.0.

2.具体实现

1.存储目录结构:既要保存用户上传的原始文件,又要生成它的PDF文件,而且PDF文件不属于业务中的,所以这采用的是原始文件和PDF文件目录结构保持一致的实现方式,替换顶级目录和文件后缀,达到通过原始文件目录就可以检索到对应的PDF所在位置。

2.依赖:如果是maven项目则需要引入依赖,但这些jar包是破解版本,不能直接通过maven下载,所以需要进行本地安装。

安装方式:下载好jar包后,在jar包目录打开控制台(cmd),执行以下命令:

格式:mvn install:install-file -Dfile=jar包的位置 -DgroupId=包的groupId -DartifactId=包的artifactId -Dversion=包的version -Dpackaging=jar

mvn install:install-file -Dfile=aspose-words-16.8.0-jdk16.jar -DgroupId=com.aspose -DartifactId=aspose-words -Dversion=16.8.0 -Dpackaging=jar

mvn install:install-file -Dfile=aspose.slides-15.9.0.jar -DgroupId=com.aspose -DartifactId=aspose-slides -Dversion=15.9.0 -Dpackaging=jar

mvn install:install-file -Dfile=aspose-cells-8.5.2.jar -DgroupId=com.aspose -DartifactId=aspose-cells -Dversion=8.5.2 -Dpackaging=jar

安装完成,引入依赖:

        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-slides</artifactId>
            <version>15.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-cells</artifactId>
            <version>8.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-words</artifactId>
            <version>16.8.0</version>
        </dependency>

3.编写预览接口

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Map;

/**
 * @author misterqi
 * @create 2020/11/17 09:34
 * @description 文件预览接口
 */
@RestController
@RequestMapping("/file")
public class FileController {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值