Java 实现文档在线预览功能

一、说明

因系统需要,要在系统中做一个文档预览的功能,网上有挺多第三方的工具,但是都是收费的,有 什么永中啊,OFFICE 365 XDOC啊,这些大概一搜都能搜到,价格也不是很贵。

但是,能不付费就尽量不付费不是?把钱省下来外面搓一顿不是更香吗?好了废话不多说,直接上代码。

温馨提示:这个东西坑特别多,为了避免大家重复踩坑,博主在这里记录一篇详细的教程。

二、测试

Gitee上面找了一个开源项目:https://gitee.com/kekingcn/file-online-preview.git 

不管怎么样,先下载下来试一试再说吧,公司网络比较差,总的下载下来大概花了10几分钟,文件总大小504M。

下载完了之后直接打开开发神器 IDEA 导入项目,这个过程有点久。

源码加载完成,找到启动类。双击打开,右键启动即可。

看到以下输出,说明完美启动了,没有报错。

这个时候,打开浏览器试一下,打开浏览器输入: http://localhost:8012

  看到这个页面,说明没有问题,那么开始测试了。先上传一个word测试以下。

感觉看到了希望,好像还挺好用,下面介绍一下怎么部署到Linux服务器上面去。下面的内容很关键,可以避免踩很多坑。

三、Linux部署项目

1、安装 openoffice ,官网下载比较慢,博主把下载好的安装包放到了百度网盘,Windows和Linux的都有,大家可以使用下面的连接下载。

链接:https://pan.baidu.com/s/10hhta6xd5KLpkR3w2u9krQ 
提取码:op9d

2、Windows安装很简单,一路下一步即可,Linux安装教程参考另一篇博客:https://blog.csdn.net/Wjhsmart/article/details/105505164

3、连接到服务器,创建好一个目录,博主创建的是 /data/zywork-file-view,如下图。

4、打开项目,找到main目录下面。把bin,config,file,log这4个目录上传到服务器上面。

5、授权,执行下面命令给新建的目录及以下的文件授权,不做这一步,后面操作会提示无权限。

chmod -R 777 /data/zywork-file-view

6、进入bin目录下面。bin目录下面的文件可只保留3个批处理文件。

7、执行下面的命令,修改批处理文件。如果不执行这个操作,会提示:坏的解释器。这个是因为在Linux中有时候我们将在Windows下编写的脚本拷贝到Linux环境中运行时会出现运行不了的情况。

// 修改启动处理文件
vim startup.sh
:set ff=unix
:wq
// 修改日志查看处理文件
vim showlog.sh
:set ff=unix
:wq
// 修改管理处理文件
vim shutdown.sh
:set ff=unix
:wq

8、打包jar,打开 idea 打包好jar。打包好了之后把jar上传至服务器。

也可以执行下面的命令打包:

cd file-online-preview
mvn clean package -DskipTests -Prelease

打包好了之后会在target目录下面生成一个jar:

将这个jar上传到服务器中的bin目录下面

9、启动项目。执行下面的命令启动这个项目。

// 进入bin目录
cd /data/zywork-file-view/bin
// 启动程序
./startup.sh
// 查看日志
./showlog.sh

没有报错说明启动成功。这里要特别注意,如果之前 openOffice 已经启动过了的话,这个项目就会启动失败,需要先关掉 openOffice 然后再来启动这个项目。

10、停止服务器,如果需要关闭这个项目,只需要执行下面的命令即可。

./shutdown.sh

11、启动说明,如果 openOffice 已经启动成功的话,项目会启动不成功。可以执行下面命令来解决。

// 查看8100端口是否启动
netstat -lnp | grep 8100
// 结束进程
kill 15756

四、使用

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(url));

五、总结

博主走了很多弯路才整明白这个东西,在这里记录一下整个过程,希望可以帮助大家少踩坑。由衷感谢代码拥有者。

码字不易,如果你觉得本文对你有帮助,帮忙点个赞就好了。

发布了68 篇原创文章 · 获赞 48 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/Wjhsmart/article/details/105494370