Proteger arquivos do PowerPoint em Python

Documentos digitais estão sempre propensos a serem adulterados por entidades não autorizadas. Por isso, diversos mecanismos de proteção são utilizados para garantir a segurança dos documentos. Neste artigo, abordaremos particularmente a proteção de apresentações do MS PowerPoint. Assim, você aprenderá como bloquear e desbloquear apresentações do PowerPoint programaticamente em Python.

Biblioteca Python para bloquear apresentações do PowerPoint

Para bloquear e desbloquear apresentações do PowerPoint, usaremos Aspose.Slides for Python via .NET. A biblioteca fornece uma variedade de recursos para criar e manipular apresentações do PowerPoint. Você pode instalar a biblioteca em seus aplicativos de PyPI usando o seguinte comando.

> pip install aspose.slides 

Bloquear uma apresentação do PowerPoint em Python

Uma apresentação do PowerPoint pode conter uma variedade de elementos como texto, imagens, formas, áudio, etc. Aspose.Slides for Python representa cada elemento como um Shape ou um objeto derivado de Shape. Portanto, para evitar que o conteúdo seja editado, precisamos bloquear todas as formas na apresentação. Essas formas podem ser dos seguintes tipos:

  • Forma automática
  • Forma do Grupo
  • Conector
  • Porta-retrato

Vamos ver como bloquear um arquivo PPTX do PowerPoint em Python.

  • Primeiro, carregue o arquivo de apresentação usando a classe Presentation.
  • Em seguida, obtenha referência de slides na apresentação usando a propriedade Presentation.slides.
  • Para cada slide, acesse suas formas usando a coleção ISlide.shapes.
  • Para cada forma na coleção, execute as seguintes etapas:
    • Verifique o tipo da forma.
    • Use trava apropriada de acordo com o tipo de forma.
  • Finalmente, salve a apresentação atualizada usando o método Presentation.save(string, SaveFormat).

O exemplo de código a seguir mostra como proteger uma apresentação bloqueando suas formas em 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)

Desbloqueie apresentações do PowerPoint em Python

Para desbloquear uma apresentação do PowerPoint, você precisa remover os bloqueios de cada forma. Observe que, se você bloqueou a apresentação usando o Aspose.Slides for Python, terá que usar a mesma biblioteca para desbloquear. Para remover os bloqueios, repita as etapas mencionadas na seção anterior e defina os valores de bloqueio como false.

O exemplo de código a seguir mostra como desbloquear uma apresentação PPTX em 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)

Obtenha uma licença gratuita

Use Aspose.Slides para Python via .NET sem limitações de avaliação obtendo uma licença temporária gratuita.

Conclusão

A proteção de documentos digitais tornou-se essencial para evitar a adulteração do conteúdo. Portanto, os documentos são protegidos antes de serem compartilhados pela internet. Da mesma forma, este artigo abordou como bloquear apresentações do PowerPoint programaticamente em Python. Além disso, você viu como desproteger as apresentações desbloqueando seus elementos. Além disso, você pode explorar mais sobre o Aspose.Slides for Python visitando a documentação. Além disso, você pode postar suas dúvidas em nosso fórum.

Veja também