Word 文档编辑限制是对文档设置的可添加密码的保护,用于限制可对文档执行的编辑操作。通过设置编辑限制,用户能够精确控制文档中哪些部分可被编辑,以及可以执行何种类型的编辑。这种限制可以确保重要信息不被更改,同时也允许对文档其他部分进行指定类型的编辑,在合作编辑、信息收集等工作中非常方便。然而,文档管理者有时也需要取消编辑限制,以便纠正文档错误、更新文档信息或者按照新的使用需求进行文档修改。本文将介绍如何使用 Spire.Doc for Java 通过 Java 程序在 Word 文档中设置和取消编辑限制。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从此链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>12.11.9</version>
</dependency>
</dependencies>
在 Word 文档中限制编辑
Spire.Doc for Java 支持对 Word 文档设置四种类型的编辑限制:不允许任何更改(只读)、修订、批注和填写窗体。这些编辑限制可通过 Document.protect() 方法和一些枚举来设置,设置时还支持添加密码以阻止随意取消限制。
下面列出了用于设置编辑限制的枚举及其说明。
枚举 | 限制类型 | 描述 |
ProtectionType.Allow_Only_Reading | 不允许任何更改(只读) | 只允许阅读文档。 |
ProtectionType.Allow_Only_Revisions | 修订 | 只允许添加修订到文档。 |
ProtectionType.Allow_Only_Comments | 批注 | 只允许添加批注到文档。 |
ProtectionType.Allow_Only_Form_Fields | 填写窗体 | 只允许填写文档窗体。 |
ProtectionType.No_Protection | 无限制 | 允许对文档进行任何编辑。 |
在 Word 文档中设置带密码的编辑限制的具体操作步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.loadFromFile() 方法加载 Word 文档。
- 使用 Document.protect() 方法设置带密码的编辑限制。
- 使用 Document.saveToFIle() 方法保存文档。
- Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.ProtectionType;
public class setEditingRestriction {
public static void main(String[] args) {
//创建一个Document类的对象
Document doc = new Document();
//加载一个Word文档
doc.loadFromFile("示例.docx");
//设置限制类型为只读,并添加密码
doc.protect(ProtectionType.Allow_Only_Reading, "password");
//设置限制类型为只能添加批注,并添加密码
//doc.protect(ProtectionType.Allow_Only_Comments, "password");
//设置限制类型为只能填写窗体,并添加密码
//doc.protect(ProtectionType.Allow_Only_Form_Fields, "password");
//设置限制类型为只能进行修订,并添加密码
//doc.protect(ProtectionType.Allow_Only_Revisions, "password");
//保存文档
doc.saveToFile("编辑限制.docx", FileFormat.Auto);
}
}
设置 Word 文档编辑限制时添加例外项
在设置 Word 文档的编辑限制时,用户可以通过插入允许编辑区域的起始和结束标记来添加例外项(不受限制的区域)。具体操作步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.loadFromFile() 方法加载 Word 文档。
- 创建一个 PermissionStart 类的对象和一个 PermissionEnd 类的对象。
- 使用 Document.getSections().get() 方法获取文档第一节。
- 在段落中插入允许编辑区域的开始和结束标记,以设置例外项。
- 使用 Document.protect() 方法为其他区域设置编辑限制密码。
- 使用 Document.saveToFile() 方法保存文档。
- Java
import com.spire.doc.*;
public class setRegionalEditingRestrictions {
public static void main(String[] args) {
//创建一个Document类的对象
Document doc = new Document();
//加载一个Word文档
doc.loadFromFile("示例.docx");
//创建允许编辑区域的开始和结束标记
PermissionStart start = new PermissionStart(doc, "permission1");
PermissionEnd end = new PermissionEnd(doc, "permission1");
//获取文档第一个节
Section section = doc.getSections().get(0);
//在文档中插入允许编辑区域开始标记和结束标记
section.getParagraphs().get(0).getChildObjects().insert(0,start);
section.getParagraphs().get(5).getChildObjects().add(end);
//设置编辑限制并添加密码
doc.protect(ProtectionType.Allow_Only_Reading, "password");
//保存文档
doc.saveToFile("例外项.docx", FileFormat.Auto);
}
}
移除 Word 文档的编辑限制
取消编辑限制可以通过将编辑限制设置为无限制来实现,从而允许对文档进行任何编辑。具体操作步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.loadFromFile() 方法加载 Word 文档。
- 使用 Document.protect() 方法将编辑限制设置为无限制并删除密码。
- 如果文档中存在例外项,则还需要在文档中找到允许编辑区域的开始标记和结束标记,并将其删除。
- 使用 Document.saveToFile() 方法保存文档。
- Java
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
public class removeEditingRestriction {
public static void main(String[] args) {
//创建一个Document类的对象
Document doc = new Document();
//加载一个Word文档
doc.loadFromFile("例外项.docx");
//移除编辑限制
doc.protect(ProtectionType.No_Protection);
//找到权限开始标记和结束标记并将其移除
for(int j=0;j<doc.getSections().getCount();j++){
//获取一个节
Section section=doc.getSections().get(j);
for(int k=0;k<section.getParagraphs().getCount();k++){
//获取节中的一个段落
Paragraph paragraph=section.getParagraphs().get(k);
for(int i=0;i<paragraph.getChildObjects().getCount();){
//获取段落的一个子对象
DocumentObject obj=paragraph.getChildObjects().get(i);
//判断子对象是否是PermissionStart或PermissionEnd类的实例
if(obj instanceof PermissionStart||obj instanceof PermissionEnd){
//如果是,则移除该子对象
paragraph.getChildObjects().remove(obj);
}else{
i++;
}
}
}
}
//保存文档
doc.saveToFile("取消编辑限制.docx", FileFormat.Auto);
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。