數字文檔總是容易被未經授權的實體篡改。因此,採用各種保護機制來保證文檔的安全性。在本文中,我們將特別針對 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 的信息。此外,您可以將您的問題發佈到我們的論壇。