编辑限制是 word 文档中的一项安全功能,可以限制他人能对文档所做的修改。通过应用编辑限制,文档所有者可以指定可对文档进行哪种类型的编辑,以及可在文档的哪些部分进行编辑,保护文档内容和格式的完整,从而方便进行协作编辑和信息收集等。本文将介绍如何使用 spire.doc for python 在 python 程序中限制对 word 文档的编辑以及移除 word 文档编辑限制。
安装 spire.doc for python
本教程需要用到 spire.doc for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.doc
如果您不确定如何安装,请参考本教程:如何在 vs code 中安装 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 天的临时许可证。