PythonでPowerPointファイルを保護する

デジタルドキュメントは、許可されていないエンティティによって常に改ざんされる傾向があります。したがって、ドキュメントのセキュリティを確保するために、さまざまな保護メカニズムが使用されます。この記事では、特にMSPowerPointプレゼンテーションの保護を対象としています。そのため、PythonでプログラムによってPowerPointプレゼンテーションをロックおよびロック解除する方法を学習します。

PowerPointプレゼンテーションをロックするPythonライブラリ

PowerPointプレゼンテーションをロックおよびロック解除するには、Aspose.Slides for Python via .NETを使用します。ライブラリは、PowerPointプレゼンテーションを作成および操作するためのさまざまな機能を提供します。次のコマンドを使用して、PyPIからアプリケーションにライブラリをインストールできます。

> pip install aspose.slides 

PythonでPowerPointプレゼンテーションをロックする

PowerPointプレゼンテーションには、テキスト、画像、図形、音声などのさまざまな要素が含まれる場合があります。Aspose.Slidesfor Pythonは、各要素をShapeまたはShapeから派生したオブジェクトとして表します。したがって、コンテンツが編集されないように保護するには、プレゼンテーション内のすべての図形をロックする必要があります。これらの形状は、次のタイプである可能性があります。

  • オートシェイプ
  • グループ形状
  • コネクタ
  • 額縁

PythonでPowerPoint PPTXファイルをロックする方法を見てみましょう。

  • まず、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)

PythonでPowerPointプレゼンテーションのロックを解除する

PowerPointプレゼンテーションのロックを解除するには、各図形からロックを解除する必要があります。 Aspose.Slides for Pythonを使用してプレゼンテーションをロックした場合は、ロックを解除するために同じライブラリを使用する必要があることに注意してください。ロックを解除するには、前のセクションで説明した手順を繰り返し、ロック値をfalseに設定します。

次のコードサンプルは、PythonでPPTXプレゼンテーションのロックを解除する方法を示しています。

# 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)

無料ライセンスを取得する

無料の一時ライセンスを取得することで、評価の制限なしに.NET経由でAspose.Slides for Pythonを使用できます。

結論

コンテンツの改ざんを防ぐために、デジタルドキュメントの保護が不可欠になっています。したがって、ドキュメントはインターネット上で共有される前に保護されます。したがって、この記事では、PythonでPowerPointプレゼンテーションをプログラムでロックする方法について説明しました。さらに、要素のロックを解除してプレゼンテーションの保護を解除する方法を見てきました。それとは別に、ドキュメントにアクセスすると、Python用のAspose.Slidesについて詳しく知ることができます。また、フォーラムにクエリを投稿することもできます。

関連項目