在 C# 中鎖定解鎖 PowerPoint PPT 中的形狀

當今,數字文檔的保護是一個普遍關注的問題。您不希望任何未經授權的人更改您文檔的內容。因此,使用有效的保護機製成為必然。因此,在本文中,我們將向您展示如何在 .NET 應用程序中保護 PPT/PPTX 演示文稿。我們將通過在 C# 中鎖定 PowerPoint PPTPPTX 中的形狀來實現這一點。

用於在 PowerPoint PPT 中鎖定形狀的 C# .NET API

要鎖定和解鎖 PowerPoint 演示文稿,我們將使用 Aspose.Slides for .NET。 API 提供了一系列功能來創建和操作 PowerPoint 演示文稿。您可以 下載 API 的 DLL 或使用 NuGet 安裝它。

PM> Install-Package Aspose.Slides.NET

在 C# 中的 PowerPoint PPT 中鎖定形狀

PowerPoint 演示文稿可能包含各種元素,例如文本、圖像、音頻等。Aspose.Slides for .NET 將每個元素作為一個 Shape 或從 Shape 派生的對象。因此,為了保護演示文稿的內容,我們需要鎖定它們的所有形狀。 Aspose.Slides 為以下類型的形狀提供合適的鎖。

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

以下步驟顯示如何在 C# 中鎖定 PowerPoint PPT 中的形狀。

  • 首先,使用 Presentation 類加載 PPT/PPTX 文件。
  • 然後,使用 Presentation.Slides 屬性獲取演示文稿中的幻燈片。
  • 對於每張幻燈片,使用 ISlide.Shapes 集合訪問其形狀。
  • 對於集合中的每個形狀,執行以下步驟:
    • 檢查形狀的類型。
    • 根據形狀的類型使用適當的鎖。
  • 最後,使用 Presentation.Save(string, SaveFormat) 方法保存演示文稿。

以下代碼示例演示如何使用 C# 在 PowerPoint PPTX 中鎖定形狀。

// 負載演示
using (Presentation presentation = new Presentation("presentation.pptx"))
{
    // 用於保存臨時形狀的 IShape 對象
    IShape shape;

    // 遍歷演示文稿中的所有幻燈片
   for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
    {
        var slide = presentation.Slides[slideCount];

        // 遍歷幻燈片中的所有形狀
       for (int count = 0; count < slide.Shapes.Count; count++)
        {
            shape = slide.Shapes[count];

            // 如果形狀是自動形狀
            if (shape is IAutoShape)
            {
                // 輸入 cast to auto shape 並獲得自動形狀鎖定
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // 應用形狀鎖
                AutoShapeLock.PositionLocked = true;
                AutoShapeLock.SelectLocked = true;
                AutoShapeLock.SizeLocked = true;
            }

            // 如果形狀是組形狀
            else if (shape is IGroupShape)
            {
                // 輸入 cast to group shape 並獲得 group shape lock
                IGroupShape Group = shape as IGroupShape;
                IGroupShapeLock groupShapeLock = Group.ShapeLock;

                // 應用形狀鎖
                groupShapeLock.GroupingLocked = true;
                groupShapeLock.PositionLocked = true;
                groupShapeLock.SelectLocked = true;
                groupShapeLock.SizeLocked = true;
            }

            // 如果形狀是連接器
            else if (shape is IConnector)
            {
                // 類型轉換為連接器形狀並獲得連接器形狀鎖定
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // 應用形狀鎖
                ConnLock.PositionMove = true;
                ConnLock.SelectLocked = true;
                ConnLock.SizeLocked = true;
            }

            // 如果形狀是相框
            else if (shape is IPictureFrame)
            {
                // 類型轉換為相框形狀並獲得相框形狀鎖定
                IPictureFrame Pic = shape as IPictureFrame;
                IPictureFrameLock PicLock = Pic.ShapeLock;

                // 應用形狀鎖
                PicLock.PositionLocked = true;
                PicLock.SelectLocked = true;
                PicLock.SizeLocked = true;
            }
        }
    }

    // 保存演示文稿
    presentation.Save("locked-ppt.pptx", SaveFormat.Pptx);
}

在 C# 中解鎖 PowerPoint 演示文稿

要解鎖形狀並使它們可編輯,您需要關閉鎖定。請注意,如果您使用 Aspose.Slides for .NET 鎖定了形狀,那麼您將不得不使用相同的 API 來解鎖。解鎖是通過禁用形狀鎖並將它們的值設置為 false 來完成的。

以下代碼示例顯示如何在 C# 中解鎖 PPTX 文件中的形狀。

// 負載演示
using (Presentation presentation = new Presentation("locked-ppt.ppt"))
{
    // 用於保存臨時形狀的 IShape 對象
    IShape shape;

    // 遍歷演示文稿中的所有幻燈片
   for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
    {
        var slide = presentation.Slides[slideCount];

        // 遍歷幻燈片中的所有形狀
       for (int count = 0; count < slide.Shapes.Count; count++)
        {
            shape = slide.Shapes[count];

            // 如果形狀是自動形狀
            if (shape is IAutoShape)
            {
                // 輸入 cast to auto shape 並獲得自動形狀鎖定
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // 解鎖形狀
                AutoShapeLock.PositionLocked = false;
                AutoShapeLock.SelectLocked = false;
                AutoShapeLock.SizeLocked = false;
            }

            // 如果形狀是組形狀
            else if (shape is IGroupShape)
            {
                // 輸入 cast to group shape 並獲得 group shape lock
                IGroupShape Group = shape as IGroupShape;
                IGroupShapeLock groupShapeLock = Group.ShapeLock;

                // 解鎖形狀
                groupShapeLock.GroupingLocked = false;
                groupShapeLock.PositionLocked = false;
                groupShapeLock.SelectLocked = false;
                groupShapeLock.SizeLocked = false;
            }

            // 如果形狀是連接器
            else if (shape is IConnector)
            {
                // 類型轉換為連接器形狀並獲得連接器形狀鎖定
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // 解鎖形狀
                ConnLock.PositionMove = false;
                ConnLock.SelectLocked = false;
                ConnLock.SizeLocked = false;
            }

            // 如果形狀是相框
            else if (shape is IPictureFrame)
            {
                // 類型轉換為相框形狀並獲得相框形狀鎖定
                IPictureFrame Pic = shape as IPictureFrame;
                IPictureFrameLock PicLock = Pic.ShapeLock;

                // 解鎖形狀
                PicLock.PositionLocked = false;
                PicLock.SelectLocked = false;
                PicLock.SizeLocked = false;
            }
        }
    }

    // 保存演示文稿
    presentation.Save("unlocked-ppt.ppt", SaveFormat.Ppt);
}

獲得免費許可證

通過獲得免費的臨時許可證,在沒有評估限制的情況下使用 Aspose.Slides for .NET。

結論

在本文中,您了解瞭如何使用 C# 在 PowerPoint PPT/PPTX 中鎖定形狀。此外,您還了解瞭如何通過以編程方式解鎖演示文稿的形狀來取消對演示文稿的保護。除此之外,您可以通過訪問 文檔 來探索更多關於 Aspose.Slides for .NET 的信息。此外,您可以將您的問題發佈到我們的論壇

也可以看看