Java给Word文档增加密码

前言

项目上有这么一个需求,就是前端上传一个word文档后,需要对其加一个密码,保证安全性,密码入库,当下载人下载后告诉他密码,才能打开,下面记录下实现方案

实现

找了一下,发现了一个spring-doc的第三方工具类,需要引入jar包或导入maven依赖,jar下载连接

引入依赖

这个工具的maven依赖比较奇葩,用的他自己的仓库,所以我们直接引入依赖是无法下载的,还得配置仓库地址,这个是官网的引入文档,按照他的操作了一番,发现还是无法引入,算了,我直接把jar包下载下来,手动导入吧,因为我们都maven项目架构,不能直接导入jar包到项目里,所以需要把jar包安装到本地仓库才行

安装jar包到本地仓库

通过以下命名把第三方jar包安装到本地仓库

1
mvn install:install-file -Dfile=D:/spire.doc.free-5.2.0.jar -DgroupId=com.dhsr -DartifactId=springdoc -Dversion=1.0.0 -Dpackaging=jar 

D:/spire.doc.free-5.2.0.jar这个是你存放jar的路径,需要你替换为你自己的jar路径

com.dhsr这个是groupId,我们引入依赖需要这个,这个你自己随便起,符合命名规范就行

springdoc 这个是DartifactId,和上面的一样,自己起名

1.0.0这个是版本号,如果有版本号的填上,没有就随便一个

执行后出现 Success 字样就表示安装到本地成功,

然后引入依赖

1
2
3
4
5
 <dependency>
<groupId>com.dhsr</groupId>
<artifactId>springdoc</artifactId>
<version>1.0.0</version>
</dependency>
使用
1
2
3
4
Document doc = new Document(filePath);
doc.encrypt(StrUtil.blankToDefault(password, "123456"));
doc.saveToFile(filePath);
doc.dispose();

Document注意导包不要导错了,这个很多包里都有这个类,正确的包是这个com.spire.doc.Document

上面代码就是给文档加个密码,最后覆盖保存未加密的文档

结语

1、这个工具还有其他的很多功能,比如解密的,或者excel的等等,其他功能可自行搜索springdoc关键字查看

2、一般情况下,不要自己去码代码去实现这种复杂的功能,先去找找有没有相关的工具类,开源的实现方案等,因为自己实现代价太大,还容易出错