在 Python 中保护 PowerPoint 文件

数字文档总是容易被未经授权的实体篡改。因此,各种保护机制被用来保证文件的安全。在本文中,我们将特别针对 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 的信息。此外,您可以将您的查询发布到我们的 论坛

也可以看看