プレゼンテーションへの保護の適用

スライドの構成

PPTXスライドは、自動図形、テーブル、OLEオブジェクト、グループ化された図形、画像フレーム、ビデオフレーム、コネクタ、プレゼンテーションを構築するために使用可能なさまざまな要素など、多数のコンポーネントで構成されています。

Aspose.Slides for Python via .NETでは、スライド上の各要素はShapeオブジェクトに変換されます。言い換えれば、スライド上の各要素は、ShapeオブジェクトまたはShapeオブジェクトから派生したオブジェクトのいずれかです。

PPTXの構造は複雑であるため、すべての型の図形に対して一般的なロックを使用できるPPTとは異なり、異なる型の図形には異なるロックがあります。BaseShapeLockクラスは、一般的なPPTXロッキングクラスです。Aspose.Slides for Python via .NETでは、PPTX用に次の種類のロックがサポートされています。

  • AutoShapeLockは自動図形をロックします。
  • ConnectorLockはコネクタ図形をロックします。
  • GraphicalObjectLockはグラフィカルオブジェクトをロックします。
  • GroupshapeLockはグループ図形をロックします。
  • PictureFrameLockは画像フレームをロックします。

プレゼンテーションオブジェクト内のすべてのShapeオブジェクトに対して実行されるアクションは、プレゼンテーション全体に適用されます。

保護の適用と削除

保護を適用することで、プレゼンテーションが編集されないことを確保します。これは、プレゼンテーションのコンテンツを保護するための便利な技術です。

PPTX図形への保護の適用

Aspose.Slides for Python via .NETは、スライド上の図形を処理するためのShapeクラスを提供します。

前述のように、各図形クラスには保護のための関連する図形ロッククラスがあります。この記事では、NoSelect、NoMove、NoResizeロックに焦点を当てています。これらのロックは、図形が選択できなくなること(マウスクリックや他の選択方法を通じて)、移動やサイズ変更ができないことを保証します。

以下のコードサンプルは、プレゼンテーション内のすべての図形タイプに保護を適用します。

import aspose.slides as slides

#PPTXファイルを表すPresentationクラスをインスタンス化
with slides.Presentation(path + "RectPicFrame.pptx") as pres:
    #プレゼンテーション内のスライドにアクセスするためのISlideオブジェクト
    slide = pres.slides[0]

    #プレゼンテーション内のすべてのスライドを走査
    for slide in pres.slides:
        for shape in slide.shapes:
            #図形が自動図形の場合
            if type(shape) is slides.AutoShape:
                auto_shape_lock = shape.shape_lock

                #図形ロックの適用
                auto_shape_lock.position_locked = True
                auto_shape_lock.select_locked = True
                auto_shape_lock.size_locked = True

            #図形がグループ図形の場合
            elif type(shape) is slides.GroupShape:
                group_shape_lock = shape.shape_lock

                #図形ロックの適用
                group_shape_lock.grouping_locked = True
                group_shape_lock.position_locked = True
                group_shape_lock.select_locked = True
                group_shape_lock.size_locked = True

            #図形がコネクタの場合
            elif type(shape) is slides.Connector:
                connector_lock = shape.shape_lock

                #図形ロックの適用
                connector_lock.position_move = True
                connector_lock.select_locked = True
                connector_lock.size_locked = True
            #図形が画像フレームの場合
            elif type(shape) is slides.PictureFrame:
                #画像フレーム図形にキャストし、画像フレーム図形ロックを取得
                picture_lock = shape.shape_lock

                #図形ロックの適用
                picture_lock.position_locked = True
                picture_lock.select_locked = True
                picture_lock.size_locked = True

    #プレゼンテーションファイルを保存
    pres.save("ProtectedSample.pptx", slides.export.SaveFormat.PPTX)

保護の削除

Aspose.Slides for Python via .NETを使用して適用された保護は、Aspose.Slides for Python via .NETでのみ削除できます。図形のロックを解除するには、適用したロックの値をfalseに設定します。以下のコードサンプルでは、ロックされたプレゼンテーション内の図形のロックを解除する方法を示します。

import aspose.slides as slides

#必要なプレゼンテーションを開く
with slides.Presentation("ProtectedSample.pptx") as pres:
    for slide in pres.slides:
        for shape in slide.shapes:
            
            if type(shape) is slides.AutoShape: 
                auto_shape_lock = shape.shape_lock

                #図形ロックの適用
                auto_shape_lock.position_locked = False
                auto_shape_lock.select_locked = False
                auto_shape_lock.size_locked = False
            
            elif type(shape) is slides.GroupShape:  
                group_shape_lock = shape.shape_lock

                #図形ロックの適用
                group_shape_lock.grouping_locked = False
                group_shape_lock.position_locked = False
                group_shape_lock.select_locked = False
                group_shape_lock.size_locked = False
            elif type(shape) is slides.Connector:
                connector_lock = shape.shape_lock

                #図形ロックの適用
                connector_lock.position_move = False
                connector_lock.select_locked = False
                connector_lock.size_locked = False
            elif type(shape) is slides.PictureFrame:
                picture_lock = shape.shape_lock

                #図形ロックの適用
                picture_lock.position_locked = False
                picture_lock.select_locked = False
                picture_lock.size_locked = False
    #プレゼンテーションファイルを保存
    pres.save("RemoveProtectionSample.pptx", slides.export.SaveFormat.PPTX)

まとめ