编辑限制是 Word 文档中的一项安全功能,可以限制他人能对文档所做的修改。通过应用编辑限制,文档所有者可以指定可对文档进行哪种类型的编辑,以及可在文档的哪些部分进行编辑,保护文档内容和格式的完整,从而方便进行协作编辑和信息收集等。本文将介绍如何使用 Spire.Doc for Python 在 Python 程序中限制对 Word 文档的编辑以及移除 Word 文档编辑限制。
安装 Spire.Doc for Python
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
使用密码限制对整个 Word 文档的编辑
Word 文档中有四种编辑限制:不允许任何更改(只读)、修订、批注和填写窗体。Spire.Doc for Python 提供了 Document.Protect() 方法和 ProtectionType 枚举来对 Word 文档设置指定类型的编辑限制。
下表是 ProtectionType 枚举和对应编辑限制类型及说明:
枚举 | 编辑限制类型 | 说明 |
ProtectionType.AllowOnlyReading | 不允许任何更改(只读) | 只允许阅读文档 |
ProtectionType.AllowOnlyRevisions | 修订 | 只允许修订文档 |
ProtectionType.AllowOnlyComments | 批注 | 只允许添加评论 |
ProtectionType.AllowOnlyFormFields | 填写窗体 | 只允许填写表单 |
ProtectionType.NoProtection | 无 | 无编辑限制 |
- 创建一个 Document 类对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.Protect(type:ProtectionType, password:str) 方法为文档设置指定的编辑限制。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个Document类对象
doc = Document()
# 加载一个Word文档
doc.LoadFromFile("示例.docx")
# 将编辑限制类型设置为只读(无更改)
doc.Protect(ProtectionType.AllowOnlyReading, "password")
# 将编辑限制类型设置为修订
# doc.Protect(ProtectionType.AllowOnlyRevisions, "password")
# 将编辑限制类型设置为批注
# doc.Protect(ProtectionType.AllowOnlyComments, "password")
# 将编辑限制类型设置为填写窗体
# doc.Protect(ProtectionType.AllowOnlyFormFields, "password")
# 保存文档
doc.SaveToFile("output/编辑限制.docx")
doc.Close()
设置 Word 文档编辑限制时添加可编辑区域
在设置 Word 文档的编辑限制时,用户可以通过插入允许编辑区域的起始和结束标记来添加例外项(不受限制的区域)。具体操作步骤如下:
- 创建一个 Document 类对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.Sections.get_Item() 方法获取文档第一节。
- 创建一个 PermissionStart 类对象和一个 PermissionEnd 类对象。
- 使用 Paragraph.ChildObjects.Insert() 方法和 Paragraph.ChildObjects.Add() 方法将权限开始标记和结束标记插入文档。
- 使用 Document.Protect() 方法设置编辑限制。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个Document类对象
doc = Document()
# 加载一个Word文档
doc.LoadFromFile("示例.docx")
# 获取第一节
section = doc.Sections.get_Item(0)
# 创建权限起始标记和结束标记
start = PermissionStart(doc, "exception1")
end = PermissionEnd(doc, "exception1")
# 将权限起始标记和结束标记插入到第一节中
paragraph = section.Paragraphs.get_Item(1)
paragraph.ChildObjects.Insert(0, start)
paragraph.ChildObjects.Add(end)
# 设置编辑限制
doc.Protect(ProtectionType.AllowOnlyReading, "password")
# 保存文档
doc.SaveToFile("output/可编辑区域.docx")
doc.Close()
移除 Word 文档种的编辑限制
取消文档的编辑限制时,只需使用 Document.Protect() 方法将编辑限制类型设置为无即可。具体步骤如下:
- 创建一个 Document 类对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 使用 Document.Protect() 方法将限制类型设置为无,从而删除限制。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个Document类对象
doc = Document()
# 加载一个Word文档
doc.LoadFromFile("output/编辑限制.docx")
# 通过将限制类型设置为无限制来移除编辑限制
doc.Protect(ProtectionType.NoProtection)
# 保存文档
doc.SaveToFile("output/移除编辑限制.docx")
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。