前言
在日常操作 Word 文档时,为了避免文档中的重要数据信息泄露造成损失,我们时常需要对其进行保护。根据需求不同,我们保护文档的方式也会有些差异。在这篇文章中,我将介绍三种保护Word文档的方式,它们分别是: 加密保护 、 设置限制编辑保护 以及 添加数字签名 。
需要注意的是,我是要通过在后端运行Java代码来完成上述操作,这样子我就不需要安装 Microsoft Office 了。同时我还需要用到 Spire.Doc for Java 第三方控件。
测试环境
· JDK 1.8.0
· Intellij IDEA 2019
· Spire.Doc.jar (可在E-iceblue中文官网获取,或在 Maven 仓库的pom.xml中引入以下代码)
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>
代码示例
方式一 加密Word文档
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class EncryptWord {
public static void main(String[] args) {
//创建Document对象
Document document = new Document();
//加载一个Word文档
document.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.docx");
//使用密码保护文档
document.encrypt("iceblue123");
//保存文档
document.saveToFile("output/EncryptWord.docx", FileFormat.Docx);
}
}
设置效果
相关功能 介绍:解密文档
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class DecryptWord {
public static void main(String[] args) {
//创建Document对象
Document document = new Document();
//加载一个有密码的文档,同时解除密码
document.loadFromFile("C:\\Users\\Test1\\Desktop\\EncryptWord.docx", FileFormat.Docx, "iceblue123");
//保存文档.
document.saveToFile("output/DecryptWord.docx", FileFormat.Docx);
}
}
方式二 设置限制编辑保护
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.ProtectionType;
public class Restrict Editing {
public static void main(String[] args) {
//创建Document实例
Document document = new Document();
//加载Word文档
document.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.docx");
//设置编辑限制的类型及文档保护密码
//不允许任何更改(只读)
document.protect(ProtectionType.Allow_Only_Reading, "red456");
//仅允许批注
//document.protect(ProtectionType.Allow_Only_Comments, "blue123");
//仅允许填写窗体
//document.protect(ProtectionType.Allow_Only_Form_Fields, "yellow789");
//仅允许修订
//document.protect(ProtectionType.Allow_Only_Revisions, "purple012");
//保存文档
document.saveToFile("output/RestrictEditing.docx", FileFormat.Docx_2013);
}
}
设置效果
相关功能 介绍: 验证Word文档的限制编辑密码
import com.spire.doc.Document;
public class VerifyRestrictEditingPassword {
public static void main(String[] args) {
//创建Document实例
Document document = new Document();
//加载Word文档
document.loadFromFile("C:\\Users\\Test1\\Desktop\\RestrictEditing.docx");
//验证文档的限制编辑密码是否正确
boolean result = document.checkProtectionPassWord("red456");
if(!result) {
System.out.println("密码错误!");
}
else {
System.out.println("密码正确!");
}
}
}
方式三 添加数字签名
import com.spire.doc.*;
public class DigitalSignature {
public static void main(String[] args) {
//加载Word文档
Document doc = new Document();
doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.docx");
//添加数字签名,并保存文档
doc.saveToFile("output/AddSignature.docx", File Format.Docx_2013,"C:\\Users\\Test1\\Desktop\\gary.pfx","e-iceblue");
}
}
添加效果