C#のPowerPointPPTでロック解除図形をロックする

最近では、デジタルドキュメントの保護が一般的な関心事になっています。許可されていない人にドキュメントの内容を変更してほしくない。したがって、効果的な保護メカニズムを使用することが避けられなくなります。したがって、この記事では、.NETアプリケーション内からPPT/PPTXプレゼンテーションを保護する方法を紹介します。これは、PowerPoint PPTまたはPPTXのC#で図形をロックすることで実現します。

PowerPoint PPTで図形をロックするためのC#.NET API

PowerPointプレゼンテーションをロックおよびロック解除するには、Aspose.Slides for .NETを使用します。 APIは、PowerPointプレゼンテーションを作成および操作するためのさまざまな機能を提供します。 ダウンロードAPIのDLLを使用するか、NuGetを使用してインストールできます。

PM> Install-Package Aspose.Slides.NET

C#のPowerPointPPTで図形をロックする

PowerPointプレゼンテーションには、テキスト、画像、音声などのさまざまな要素が含まれている場合があります。Aspose.Slidesfor .NETは、各要素をShapeまたはShapeから派生したオブジェクトとして受け取ります。したがって、プレゼンテーションのコンテンツを保護するには、すべての形状をロックする必要があります。 Aspose.Slidesは、次のタイプの形状に適切なロックを提供します。

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

次の手順は、C#でPowerPointPPTの図形をロックする方法を示しています。

  • まず、Presentationクラスを使用してPPT/PPTXファイルをロードします。
  • 次に、Presentation.Slidesプロパティを使用して、プレゼンテーションのスライドを取得します。
  • スライドごとに、ISlide.Shapesコレクションを使用してその図形にアクセスします。
  • コレクション内の形状ごとに、次の手順を実行します。
    • 形状の種類を確認してください。
    • 形状の種類に応じて適切なロックを使用してください。
  • 最後に、Presentation.Save(string, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してPowerPoint PPTXで図形をロックする方法を示しています。

// プレゼンテーションを読み込む
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)
            {
                // グループシェイプにキャストと入力し、グループシェイプロックを取得します
                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);
}

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

図形のロックを解除して編集可能にするには、ロックをオフにする必要があります。 Aspose.Slides for .NETを使用して図形をロックした場合は、ロック解除に同じAPIを使用する必要があることに注意してください。ロック解除は、シェイプロックを無効にし、それらの値をfalseに設定することによって行われます。

次のコードサンプルは、C#でPPTXファイルの図形のロックを解除する方法を示しています。

// プレゼンテーションを読み込む
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)
            {
                // グループシェイプにキャストと入力し、グループシェイプロックを取得します
                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を使用します。

結論

この記事では、C#でPowerPoint PPT/PPTXの図形をロックする方法を学習しました。さらに、プログラムで形状のロックを解除することにより、プレゼンテーションの保護を解除する方法を見てきました。それとは別に、ドキュメントにアクセスすると、Aspose.Slides for .NETの詳細を調べることができます。また、フォーラムにクエリを投稿することもできます。

関連項目