Блокування розблокування фігур у PowerPoint PPT на C#

Захист цифрових документів сьогодні є загальною проблемою. Ви не хочете, щоб будь-яка неавторизована особа змінювала вміст ваших документів. Тому використання ефективних механізмів захисту стає неминучим. Відповідно, у цій статті ми покажемо вам, як захистити презентації PPT/PPTX у ваших програмах .NET. Ми досягнемо цього, заблокувавши фігури в PowerPoint PPT або PPTX у C#.

C# .NET API для блокування фігур у PowerPoint PPT

Щоб заблокувати та розблокувати презентації PowerPoint, ми будемо використовувати Aspose.Slides for .NET. API надає низку функцій для створення презентацій PowerPoint і керування ними. Ви можете завантажити DLL API або встановити його за допомогою NuGet.

PM> Install-Package Aspose.Slides.NET

Блокування фігур у PowerPoint PPT на C#

Презентація PowerPoint може містити різноманітні елементи, такі як текст, зображення, аудіо тощо. Aspose.Slides for .NET приймає кожен елемент як форму або об’єкт, похідний від форми. Отже, щоб захистити вміст презентацій, нам потрібно заблокувати всі їхні форми. Aspose.Slides забезпечує відповідні замки для наступних типів фігур.

  • Автоформа
  • Форма групи
  • Роз’єм
  • Фоторамка

Наступні кроки показують, як заблокувати фігури в PowerPoint PPT у C#.

  • Спочатку завантажте файл PPT/PPTX за допомогою класу презентації.
  • Потім отримайте слайди в презентації за допомогою властивості Presentation.Slides.
  • Для кожного слайда отримуйте доступ до його фігур за допомогою колекції ISlide.Shapes.
  • Для кожної фігури в колекції виконайте такі кроки:
    • Перевірте тип форми.
    • Використовуйте відповідний замок відповідно до типу фігури.
  • Нарешті, збережіть презентацію за допомогою методу Presentation.Save(string, SaveFormat).

У наведеному нижче прикладі коду показано, як заблокувати фігури в PowerPoint PPTX за допомогою C#.

// Завантажити презентацію
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 і отримайте блокування групи
                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)
            {
                // Введіть cast to connector shape і отримайте блокування форми сполучника
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // Застосовуйте фігурні замки
                ConnLock.PositionMove = true;
                ConnLock.SelectLocked = true;
                ConnLock.SizeLocked = true;
            }

            // Якщо форма – це рамка для картини
            else if (shape is IPictureFrame)
            {
                // Введіть cast to picture frame shape і отримайте блокування форми рамки зображення
                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);
}

Розблокуйте презентації PowerPoint на C#

Щоб розблокувати фігури та зробити їх доступними для редагування, потрібно вимкнути блокування. Зауважте, що якщо ви заблокували фігури за допомогою Aspose.Slides for .NET, вам доведеться використовувати той самий API для розблокування. Розблокування здійснюється шляхом вимкнення блокувань форми та встановлення для них значення false.

У наведеному нижче прикладі коду показано, як розблокувати форми у файлі PPTX у C#.

// Завантажити презентацію
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 і отримайте блокування групи
                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)
            {
                // Введіть cast to connector shape і отримайте блокування форми сполучника
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // Розблокувати форму
                ConnLock.PositionMove = false;
                ConnLock.SelectLocked = false;
                ConnLock.SizeLocked = false;
            }

            // Якщо форма – це рамка для картини
            else if (shape is IPictureFrame)
            {
                // Введіть cast to picture frame shape і отримайте блокування форми рамки зображення
                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 без обмежень оцінки, отримавши безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як заблокувати фігури в PowerPoint PPT/PPTX на C#. Крім того, ви бачили, як зняти захист із презентацій, розблокувавши їхні форми програмним шляхом. Крім того, ви можете дізнатися більше про Aspose.Slides for .NET, відвідавши документацію. Також ви можете опублікувати свої запити на нашому форумі.

Дивись також