Защитите файлы PowerPoint в Python

Цифровые документы всегда подвержены вмешательству со стороны неавторизованных лиц. Поэтому для обеспечения безопасности документов используются различные механизмы защиты. В этой статье мы уделим особое внимание защите презентаций MS PowerPoint. Итак, вы узнаете, как программно блокировать и разблокировать презентации PowerPoint в Python.

Библиотека Python для блокировки презентаций PowerPoint

Чтобы заблокировать и разблокировать презентации PowerPoint, мы будем использовать Aspose.Slides для Python через .NET. Библиотека предоставляет ряд функций для создания презентаций PowerPoint и управления ими. Вы можете установить библиотеку в свои приложения из PyPI с помощью следующей команды.

> pip install aspose.slides 

Заблокировать презентацию PowerPoint в Python

Презентация PowerPoint может содержать различные элементы, такие как текст, изображения, фигуры, аудио и т. д. Aspose.Slides для Python представляет каждый элемент как фигуру или объект, производный от фигуры. Итак, чтобы защитить контент от редактирования, нам нужно заблокировать все фигуры в презентации. Эти формы могут быть следующих типов:

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

Давайте посмотрим, как заблокировать файл PowerPoint PPTX в Python.

  • Сначала загрузите файл презентации с помощью класса Presentation.
  • Затем получите ссылку на слайды в презентации, используя свойство Presentation.slides.
  • Для каждого слайда получите доступ к его формам, используя коллекцию ISlide.shapes.
  • Для каждой фигуры в коллекции выполните следующие шаги:
    • Проверьте тип формы.
    • Используйте соответствующий замок в соответствии с типом формы.
  • Наконец, сохраните обновленную презентацию с помощью метода Presentation.save(string, SaveFormat).

В следующем примере кода показано, как защитить презентацию, заблокировав ее фигуры в Python.

# load presentation
with slides.Presentation("presentation.pptx") as pres:

    # loop through all the slides in the presentation
    for slide in pres.slides:
        for shape in slide.shapes:
            # if shape is autoshape
            if type(shape) is slides.AutoShape:
                auto_shape_lock = shape.shape_lock

                # apply locks
                auto_shape_lock.position_locked = True
                auto_shape_lock.select_locked = True
                auto_shape_lock.size_locked = True

            # if shape is group shape
            elif type(shape) is slides.GroupShape:
                group_shape_lock = shape.shape_lock

                # apply locks
                group_shape_lock.grouping_locked = True
                group_shape_lock.position_locked = True
                group_shape_lock.select_locked = True
                group_shape_lock.size_locked = True

            # if shape is a connector
            elif type(shape) is slides.Connector:
                connector_lock = shape.shape_lock

                # apply locks
                connector_lock.position_move = True
                connector_lock.select_locked = True
                connector_lock.size_locked = True

            # if shape is picture frame
            elif type(shape) is slides.PictureFrame:
                picture_lock = shape.shape_lock

                # apply locks
                picture_lock.position_locked = True
                picture_lock.select_locked = True
                picture_lock.size_locked = True

    # save the presentation file
    pres.save("Locked.pptx", slides.export.SaveFormat.PPTX)

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

Чтобы разблокировать презентацию PowerPoint, необходимо снять замки с каждой фигуры. Обратите внимание, что если вы заблокировали презентацию с помощью Aspose.Slides for Python, вам придется использовать ту же библиотеку для разблокировки. Чтобы снять блокировки, повторите шаги, упомянутые в предыдущем разделе, и установите для значений блокировки значение false.

В следующем примере кода показано, как разблокировать презентацию PPTX в Python.

# load presentation
with slides.Presentation("Locked.pptx") as pres:

    # loop through all the slides in the presentation
    for slide in pres.slides:
        for shape in slide.shapes:
            # if shape is autoshape
            if type(shape) is slides.AutoShape:
                auto_shape_lock = shape.shape_lock

                # remove locks
                auto_shape_lock.position_locked = False
                auto_shape_lock.select_locked = False
                auto_shape_lock.size_locked = False

            # if shape is group shape
            elif type(shape) is slides.GroupShape:
                group_shape_lock = shape.shape_lock

                # remove locks
                group_shape_lock.grouping_locked = False
                group_shape_lock.position_locked = False
                group_shape_lock.select_locked = False
                group_shape_lock.size_locked = False

            # if remove is a connector
            elif type(shape) is slides.Connector:
                connector_lock = shape.shape_lock

                # remove locks
                connector_lock.position_move = False
                connector_lock.select_locked = False
                connector_lock.size_locked = False

            # if shape is picture frame
            elif type(shape) is slides.PictureFrame:
                picture_lock = shape.shape_lock

                # remove locks
                picture_lock.position_locked = False
                picture_lock.select_locked = False
                picture_lock.size_locked = False

    # save the presentation file
    pres.save("Unlocked.pptx", slides.export.SaveFormat.PPTX)

Получить бесплатную лицензию

Используйте Aspose.Slides for Python через .NET без ограничений на пробную версию, получив бесплатную временную лицензию.

Вывод

Защита цифровых документов стала необходимой, чтобы избежать подделки содержимого. Таким образом, документы защищены до того, как они будут переданы через Интернет. Соответственно, в этой статье рассказывается, как программно заблокировать презентации PowerPoint в Python. Кроме того, вы видели, как снять защиту с презентаций, разблокировав их элементы. Кроме того, вы можете узнать больше об Aspose.Slides для Python, посетив документацию. Кроме того, вы можете оставлять свои вопросы на нашем форуме.

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