数字文档总是容易被未经授权的实体篡改。因此,各种保护机制被用来保证文件的安全。在本文中,我们将特别针对 MS PowerPoint 演示文稿的保护。因此,您将学习如何在 Python 中以编程方式锁定和解锁 PowerPoint 演示文稿。
用于锁定 PowerPoint 演示文稿的 Python 库
要锁定和解锁 PowerPoint 演示文稿,我们将使用 Aspose.Slides for Python via .NET。该库提供了一系列功能来创建和操作 PowerPoint 演示文稿。您可以使用以下命令从 PyPI 将库安装到您的应用程序中。
> pip install aspose.slides
用 Python 锁定 PowerPoint 演示文稿
PowerPoint 演示文稿可能包含各种元素,例如文本、图像、形状、音频等。Aspose.Slides for Python 将每个元素表示为 Shape 或派生自 Shape 的 abject。所以为了保护内容不被编辑,我们需要锁定演示文稿中的所有形状。这些形状可以是以下类型:
- 自动形状
- 组形状
- 连接器
- 镜框
让我们看看如何在 Python 中锁定 PowerPoint PPTX 文件。
- 首先,使用 Presentation 类加载演示文件。
- 然后,使用 Presentation.slides 属性获取演示文稿中幻灯片的引用。
- 对于每张幻灯片,使用 ISlide.shapes 集合访问其形状。
- 对于集合中的每个形状,执行以下步骤:
- 检查形状的类型。
- 根据形状的类型使用适当的锁。
- 最后,使用 Presentation.save(string, SaveFormat) 方法保存更新的演示文稿。
以下代码示例展示了如何通过在 Python 中锁定其形状来保护演示文稿。
# 加载演示
with slides.Presentation("presentation.pptx") as pres:
# 循环浏览演示文稿中的所有幻灯片
for slide in pres.slides:
for shape in slide.shapes:
# 如果形状是自动形状
if type(shape) is slides.AutoShape:
auto_shape_lock = shape.shape_lock
# 应用锁
auto_shape_lock.position_locked = True
auto_shape_lock.select_locked = True
auto_shape_lock.size_locked = True
# 如果形状是组形状
elif type(shape) is slides.GroupShape:
group_shape_lock = shape.shape_lock
# 应用锁
group_shape_lock.grouping_locked = True
group_shape_lock.position_locked = True
group_shape_lock.select_locked = True
group_shape_lock.size_locked = True
# 如果 shape 是连接器
elif type(shape) is slides.Connector:
connector_lock = shape.shape_lock
# 应用锁
connector_lock.position_move = True
connector_lock.select_locked = True
connector_lock.size_locked = True
# 如果形状是相框
elif type(shape) is slides.PictureFrame:
picture_lock = shape.shape_lock
# 应用锁
picture_lock.position_locked = True
picture_lock.select_locked = True
picture_lock.size_locked = True
# 保存演示文件
pres.save("Locked.pptx", slides.export.SaveFormat.PPTX)
在 Python 中解锁 PowerPoint 演示文稿
要解锁 PowerPoint 演示文稿,您需要移除每个形状的锁。请注意,如果您使用 Aspose.Slides for Python 锁定了演示文稿,那么您将不得不使用相同的库进行解锁。要删除锁定,请重复上一节中提到的步骤并将锁定值设置为 false。
以下代码示例展示了如何在 Python 中解锁 PPTX 演示文稿。
# 加载演示
with slides.Presentation("Locked.pptx") as pres:
# 循环浏览演示文稿中的所有幻灯片
for slide in pres.slides:
for shape in slide.shapes:
# 如果形状是自动形状
if type(shape) is slides.AutoShape:
auto_shape_lock = shape.shape_lock
# 删除锁
auto_shape_lock.position_locked = False
auto_shape_lock.select_locked = False
auto_shape_lock.size_locked = False
# 如果形状是组形状
elif type(shape) is slides.GroupShape:
group_shape_lock = shape.shape_lock
# 删除锁
group_shape_lock.grouping_locked = False
group_shape_lock.position_locked = False
group_shape_lock.select_locked = False
group_shape_lock.size_locked = False
# 如果 remove 是一个连接器
elif type(shape) is slides.Connector:
connector_lock = shape.shape_lock
# 删除锁
connector_lock.position_move = False
connector_lock.select_locked = False
connector_lock.size_locked = False
# 如果形状是相框
elif type(shape) is slides.PictureFrame:
picture_lock = shape.shape_lock
# 删除锁
picture_lock.position_locked = False
picture_lock.select_locked = False
picture_lock.size_locked = False
# 保存演示文件
pres.save("Unlocked.pptx", slides.export.SaveFormat.PPTX)
获得免费许可证
通过获得免费临时许可证,通过 .NET 使用 Aspose.Slides for Python,不受评估限制。
结论
保护数字文档对于避免篡改内容变得至关重要。因此,文档在通过 Internet 共享之前受到保护。因此,本文介绍了如何在 Python 中以编程方式锁定 PowerPoint 演示文稿。此外,您还了解了如何通过解锁演示文稿的元素来解除对演示文稿的保护。除此之外,您可以通过访问 文档 探索更多关于 Aspose.Slides for Python 的信息。此外,您可以将您的查询发布到我们的 论坛。