Word 文書に編集権限領域を追加することで、特定のセクションを他のユーザーが編集できるようにし、それ以外の部分は誤って変更されるのを防ぐことができます。これは、共同作業文書や文書レビュー、コメントなどのシナリオに特に有用です。一方で、編集可能領域機能を削除することで、特定のセクションが編集される必要がない場合に文書を読み取り専用の状態に戻し、文書内容の整合性とセキュリティを確保できます。この記事では、C# プロジェクト内で Spire.Doc for .NET を使用して、Word 文書に編集可能領域を追加または削除する方法を説明します。
Spire.Doc for .NET をインストールします
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
C# を使用して Word 文書に編集可能領域を追加する
Word 文書に編集可能領域を追加する手順は、文書内に PermissionStart および PermissionEnd オブジェクトを挿入し、文書を読み取り専用保護モードに設定して、指定された領域内のコンテンツが編集可能であることを確保しながら、それ以外の部分を読み取り専用に保つことです。以下は詳細な手順です:
- Document オブジェクトを作成する。
- Document.LoadFromFile() メソッドを使用して Word 文書を読み込む。
- Document.Sections[index] プロパティを通じて文書のセクションにアクセスする。
- PermissionStart permissionStart = new PermissionStart(document, id) を使用して編集可能領域の開始を示す PermissionStart オブジェクトを作成する。
- PermissionEnd permissionEnd = new PermissionEnd(document, id) を使用して編集可能領域の終了を示す PermissionEnd オブジェクトを作成する。
- Section.Paragraphs[index] プロパティを使用して段落にアクセスする。
- Paragraph.ChildObjects.Insert(0, permissionStart) メソッドを使用して段落の先頭に PermissionStart オブジェクトを挿入する。
- Paragraph.ChildObjects.Add(permissionEnd) メソッドを使用して段落の最後に PermissionEnd オブジェクトを追加する。
- Document.Protect(ProtectionType.AllowOnlyReading, password) メソッドを使用して文書を読み取り専用保護モードに設定し、編集権限を制限する。
- Document.SaveToFile() メソッドを使用して結果の文書を保存する。
- C#
using Spire.Doc;
using Spire.Doc.Documents;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 新しいドキュメントオブジェクトを作成する
Document document = new Document();
// 指定されたパスからドキュメントを読み込む
document.LoadFromFile("Sample.docx");
// ドキュメントの最初のセクションを取得する
Section section = document.Sections[0];
// 権限開始オブジェクトを作成する
PermissionStart permissionStart = new PermissionStart(document, "restricted1");
// 権限終了オブジェクトを作成する
PermissionEnd permissionEnd = new PermissionEnd(document, "restricted1");
// セクション内の2番目の段落を取得する
Paragraph paragraph = section.Paragraphs[1];
// 権限開始オブジェクトを段落の最初に挿入する
paragraph.ChildObjects.Insert(0, permissionStart);
// 権限終了オブジェクトを段落の最後に追加する
paragraph.ChildObjects.Add(permissionEnd);
// ドキュメントを読み取り専用に保護する
document.Protect(ProtectionType.AllowOnlyReading, "123456");
// 修正されたドキュメントを指定されたパスに保存する
document.SaveToFile("Word文書に編集許可領域を追加.docx", FileFormat.Docx);
// ドキュメントを閉じ、ドキュメントオブジェクトによって占有されているリソースを解放する
document.Close();
document.Dispose();
}
}
}
C# を使用して Word 文書から編集可能領域を削除する
Word 文書から編集可能領域を削除するための重要な手順は、文書の各段落を反復処理し、PermissionStart および PermissionEnd オブジェクトを削除することです。以下は詳細な手順です:
- Document オブジェクトを作成する。
- Document.LoadFromFile() メソッドを使用して Word 文書を読み込む。
- 文書の各セクション内の各段落を反復処理し、PermissionStart または PermissionEnd オブジェクトの存在を確認してそれらを削除する。
- Document.SaveToFile() メソッドを使用して結果の文書を保存する。
- C#
using Spire.Doc;
using Spire.Doc.Documents;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 新しいドキュメントオブジェクトを作成する
Document document = new Document();
// 指定されたパスからドキュメントを読み込む
document.LoadFromFile("Word文書に編集許可領域を追加.docx");
// ドキュメントのセクションを反復処理する
for (int a = 0; a < document.Sections.Count; a++)
{
// 現在のセクションの本文を取得する
Body body = document.Sections[a].Body;
// 本文の子オブジェクトを反復処理する
for (int i = 0; i < body.ChildObjects.Count; i++)
{
// 子オブジェクトが段落かどうかを確認する
if (body.ChildObjects[i] is Paragraph)
{
// 現在の段落を取得する
Paragraph paragraph = (Paragraph)body.ChildObjects[i];
// 段落の最後の子オブジェクトから逆向きに反復処理する
for (int j = paragraph.ChildObjects.Count - 1; j >= 0; j--)
{
// 現在の子オブジェクトを取得する
DocumentObject documentObject = paragraph.ChildObjects[j];
// 現在の子オブジェクトが権限開始オブジェクトである場合は削除する
if (documentObject.DocumentObjectType == DocumentObjectType.PermissionStart)
{
paragraph.ChildObjects.RemoveAt(j);
}
// 現在の子オブジェクトが権限終了オブジェクトである場合は削除する
else if (documentObject.DocumentObjectType == DocumentObjectType.PermissionEnd)
{
paragraph.ChildObjects.RemoveAt(j);
}
}
}
}
}
// 修正されたドキュメントを指定されたパスに保存する
document.SaveToFile("Word文書の編集許可領域を削除.docx", FileFormat.Docx);
// ドキュメントを閉じ、ドキュメントオブジェクトによって占有されているリソースを解放する
document.Close();
document.Dispose();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。