最近では、デジタルドキュメントの保護が一般的な関心事になっています。許可されていない人にドキュメントの内容を変更してほしくない。したがって、効果的な保護メカニズムを使用することが避けられなくなります。したがって、この記事では、.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の詳細を調べることができます。また、フォーラムにクエリを投稿することもできます。