这里我们使用docx4j 进行加密。要进行加密的文件为office 2007 套件生成的文件,即文件名后缀有x的,比如pptx,docx,xlsx等。
导入pom 依赖。
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-core</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.2.0</version>
</dependency>
Java 代码:
public static void encrypt(InputStream is , OutputStream os , String password) throws Docx4JException {
OpcPackage pkg = DefaultPackage.load(is, password);
pkg.save(os, Docx4J.FLAG_SAVE_ENCRYPTED_STANDARD, password);
}
Java代码比较简单,如果需要进行其他操作,比如说添加水印,设置隐藏信息,需要初始化对应的OpcPackage子类