Блокировка разблокировки фигур в 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 для .NET принимает каждый элемент как фигуру или объект, производный от фигуры. Итак, чтобы защитить содержимое презентаций, нам нужно заблокировать все их формы. Aspose.Slides обеспечивает соответствующие блокировки для следующих типов фигур.

  • Автоматическая форма
  • Форма группы
  • Соединитель
  • Фоторамка

Следующие шаги показывают, как заблокировать фигуры в PowerPoint PPT на C#.

  • Сначала загрузите файл PPT/PPTX, используя класс Presentation.
  • Затем получите слайды в презентации, используя свойство 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)
            {
                // Введите приведение к автоматической форме и получите блокировку автоматической формы
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // Применение замков формы
                AutoShapeLock.PositionLocked = true;
                AutoShapeLock.SelectLocked = true;
                AutoShapeLock.SizeLocked = true;
            }

            // Если форма является формой группы
            else if (shape is IGroupShape)
            {
                // Введите cast для групповой формы и получите блокировку групповой формы
                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);
}

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

Чтобы разблокировать фигуры и сделать их редактируемыми, вам нужно отключить блокировки. Обратите внимание, что если вы заблокировали фигуры с помощью Aspose.Slides для .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)
            {
                // Введите приведение к автоматической форме и получите блокировку автоматической формы
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

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

            // Если форма является формой группы
            else if (shape is IGroupShape)
            {
                // Введите cast для групповой формы и получите блокировку групповой формы
                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 без ограничений по ознакомительной версии, получив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как заблокировать фигуры в PowerPoint PPT/PPTX на C#. Кроме того, вы видели, как снять защиту с презентаций, программно разблокировав их формы. Кроме того, вы можете узнать больше об Aspose.Slides для .NET, посетив документацию. Кроме того, вы можете оставлять свои вопросы на нашем форуме.

Смотрите также