在 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 派生的對象。所以為了保護內容不被編輯,我們需要鎖定演示文稿中的所有形狀。這些形狀可以是以下類型:

  • 自動形狀
  • 組形
  • 連接器
  • 鏡框

讓我們看看如何在 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

            # 如果形狀是連接器
            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

            # 如果刪除是一個連接器
            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 的信息。此外,您可以將您的問題發佈到我們的論壇

也可以看看