Khóa hình dạng mở khóa trong PowerPoint PPT trong C#

Ngày nay, việc bảo vệ các tài liệu kỹ thuật số là một mối quan tâm chung. Bạn không muốn bất kỳ người nào trái phép thay đổi nội dung tài liệu của bạn. Vì vậy, nó trở thành tất yếu để sử dụng các cơ chế bảo vệ hiệu quả. Theo đó, trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách bảo vệ bản trình bày PPT / PPTX từ bên trong các ứng dụng .NET của bạn. Chúng tôi sẽ thực hiện điều đó bằng cách khóa các hình dạng trong PowerPoint PPT hoặc PPTX trong C#.

C# .NET API để khóa hình dạng trong PowerPoint PPT

Để khóa và mở khóa các bản trình bày PowerPoint, chúng tôi sẽ sử dụng Aspose.Slides for .NET. API cung cấp một loạt các tính năng để tạo và thao tác với các bản trình bày PowerPoint. Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.Slides.NET

Khóa hình dạng trong PowerPoint PPT trong C#

Bản trình bày PowerPoint có thể chứa nhiều phần tử khác nhau như văn bản, hình ảnh, âm thanh, v.v. Aspose.Slides for .NET lấy mỗi phần tử dưới dạng Hình dạng hoặc phần tử bắt nguồn từ Hình dạng. Vì vậy, để bảo vệ nội dung của các bài thuyết trình, chúng ta cần khóa tất cả các hình dạng của chúng. Aspose.Slides cung cấp các ổ khóa thích hợp cho các loại hình dạng sau.

  • Hình dạng tự động
  • Hình dạng nhóm
  • Kết nối
  • Khung tranh

Các bước sau đây cho biết cách khóa các hình dạng trong PowerPoint PPT bằng C#.

  • Đầu tiên, tải tệp PPT / PPTX bằng lớp Trình bày.
  • Sau đó, lấy các trang trình bày trong bản trình bày bằng cách sử dụng thuộc tính Presentation.Slides.
  • Đối với mỗi trang chiếu, hãy truy cập các hình dạng của nó bằng bộ sưu tập ISlide.Shapes.
  • Đối với mỗi hình dạng trong bộ sưu tập, hãy thực hiện các bước sau:
    • Kiểm tra loại hình dạng.
    • Sử dụng khóa thích hợp tùy theo loại hình dạng.
  • Cuối cùng, lưu bản trình bày bằng phương thức Presentation.Save (string, SaveFormat).

Mẫu mã sau đây cho thấy cách khóa các hình dạng trong PowerPoint PPTX bằng C#.

// Tải bản trình bày
using (Presentation presentation = new Presentation("presentation.pptx"))
{
    // Đối tượng IShape để giữ các hình dạng tạm thời
    IShape shape;

    // Xem qua tất cả các trang trình bày trong bản trình bày
   for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
    {
        var slide = presentation.Slides[slideCount];

        // Tìm hiểu qua tất cả các hình dạng trong các trang trình bày
       for (int count = 0; count < slide.Shapes.Count; count++)
        {
            shape = slide.Shapes[count];

            // Nếu hình dạng là hình dạng tự động
            if (shape is IAutoShape)
            {
                // Nhập cast để tạo hình tự động và nhận khóa hình dạng tự động
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // Áp dụng khóa hình dạng
                AutoShapeLock.PositionLocked = true;
                AutoShapeLock.SelectLocked = true;
                AutoShapeLock.SizeLocked = true;
            }

            // Nếu hình dạng là hình dạng nhóm
            else if (shape is IGroupShape)
            {
                // Nhập truyền vào hình dạng nhóm và nhận khóa hình dạng nhóm
                IGroupShape Group = shape as IGroupShape;
                IGroupShapeLock groupShapeLock = Group.ShapeLock;

                // Áp dụng khóa hình dạng
                groupShapeLock.GroupingLocked = true;
                groupShapeLock.PositionLocked = true;
                groupShapeLock.SelectLocked = true;
                groupShapeLock.SizeLocked = true;
            }

            // Nếu hình dạng là một đầu nối
            else if (shape is IConnector)
            {
                // Gõ đúc đến hình dạng đầu nối và nhận khóa hình dạng đầu nối
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // Áp dụng khóa hình dạng
                ConnLock.PositionMove = true;
                ConnLock.SelectLocked = true;
                ConnLock.SizeLocked = true;
            }

            // Nếu hình dạng là khung ảnh
            else if (shape is IPictureFrame)
            {
                // Gõ đúc đến hình dạng khung hình ảnh và nhận được khóa hình dạng khung hình ảnh
                IPictureFrame Pic = shape as IPictureFrame;
                IPictureFrameLock PicLock = Pic.ShapeLock;

                // Áp dụng khóa hình dạng
                PicLock.PositionLocked = true;
                PicLock.SelectLocked = true;
                PicLock.SizeLocked = true;
            }
        }
    }

    // Lưu bản trình bày
    presentation.Save("locked-ppt.pptx", SaveFormat.Pptx);
}

Mở khóa bản trình bày PowerPoint trong C#

Để mở khóa các hình dạng và làm cho chúng có thể chỉnh sửa được, bạn cần phải tắt khóa. Xin lưu ý rằng nếu bạn đã khóa các hình dạng bằng Aspose.Slides for .NET thì bạn sẽ phải sử dụng cùng một API để mở khóa. Việc mở khóa được thực hiện bằng cách tắt các khóa hình dạng và đặt giá trị của chúng thành false.

Mẫu mã sau đây cho thấy cách mở khóa các hình dạng trong tệp PPTX bằng C#.

// Tải bản trình bày
using (Presentation presentation = new Presentation("locked-ppt.ppt"))
{
    // Đối tượng IShape để giữ các hình dạng tạm thời
    IShape shape;

    // Xem qua tất cả các trang trình bày trong bản trình bày
   for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
    {
        var slide = presentation.Slides[slideCount];

        // Tìm hiểu qua tất cả các hình dạng trong các trang trình bày
       for (int count = 0; count < slide.Shapes.Count; count++)
        {
            shape = slide.Shapes[count];

            // Nếu hình dạng là hình dạng tự động
            if (shape is IAutoShape)
            {
                // Nhập cast để tạo hình tự động và nhận khóa hình dạng tự động
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // Mở khóa hình dạng
                AutoShapeLock.PositionLocked = false;
                AutoShapeLock.SelectLocked = false;
                AutoShapeLock.SizeLocked = false;
            }

            // Nếu hình dạng là hình dạng nhóm
            else if (shape is IGroupShape)
            {
                // Nhập truyền vào hình dạng nhóm và nhận khóa hình dạng nhóm
                IGroupShape Group = shape as IGroupShape;
                IGroupShapeLock groupShapeLock = Group.ShapeLock;

                // Mở khóa hình dạng
                groupShapeLock.GroupingLocked = false;
                groupShapeLock.PositionLocked = false;
                groupShapeLock.SelectLocked = false;
                groupShapeLock.SizeLocked = false;
            }

            // Nếu hình dạng là một đầu nối
            else if (shape is IConnector)
            {
                // Gõ đúc đến hình dạng đầu nối và nhận khóa hình dạng đầu nối
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // Mở khóa hình dạng
                ConnLock.PositionMove = false;
                ConnLock.SelectLocked = false;
                ConnLock.SizeLocked = false;
            }

            // Nếu hình dạng là khung ảnh
            else if (shape is IPictureFrame)
            {
                // Gõ đúc đến hình dạng khung hình ảnh và nhận được khóa hình dạng khung hình ảnh
                IPictureFrame Pic = shape as IPictureFrame;
                IPictureFrameLock PicLock = Pic.ShapeLock;

                // Mở khóa hình dạng
                PicLock.PositionLocked = false;
                PicLock.SelectLocked = false;
                PicLock.SizeLocked = false;
            }
        }
    }

    // Lưu bản trình bày
    presentation.Save("unlocked-ppt.ppt", SaveFormat.Ppt);
}

Nhận giấy phép miễn phí

Sử dụng Aspose.Slides for .NET mà không có giới hạn đánh giá bằng cách nhận giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách khóa hình dạng trong PowerPoint PPT / PPTX bằng C#. Hơn nữa, bạn đã thấy cách bỏ bảo vệ các bản trình bày bằng cách mở khóa các hình dạng của chúng theo chương trình. Ngoài ra, bạn có thể khám phá thêm về Aspose.Slides for .NET bằng cách truy cập tài liệu. Ngoài ra, bạn có thể đăng các truy vấn của mình lên diễn đàn của chúng tôi.

Xem thêm