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# で段落にブックマークを追加する
Spire.Doc を使用して、段落の先頭に BookmarkStart オブジェクトを挿入し、段落の終わりに BookmarkEnd オブジェクトを挿入することで、段落にブックマークを作成できます。ブックマークの開始点と終了点の間のスペースが定義されたブックマークとなり、必要に応じて参照・アクセスすることができます。
段落にブックマークを追加する手順は以下の通りです。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
- Document.Sections[].Paragraphs[] プロパティを使用して、セクションから段落を取得します。
- Paragraph.AppendBookmarkStart() メソッドを使用して BookmarkStart オブジェクトを作成します。
- 選択した段落の先頭に BookmarkStart を挿入します。
- Paragraph.AppendBookmarkEnd() メソッドを使用して、段落の終わりに BookmarkEnd オブジェクトを追加します。
- Document.SaveToFile() メソッドを使用して文書を保存します。
- C#
using Spire.Doc;
using Spire.Doc.Documents;
namespace AddBookmarkToParagraph
{
class Program
{
static void Main(string[] args)
{
// Documentオブジェクトを作成
Document doc = new Document();
// Wordファイルをロード
doc.LoadFromFile("Sample.docx");
// 指定された段落を取得
Paragraph paragraph = doc.Sections[0].Paragraphs[1];
// ブックマークの開始を作成
BookmarkStart start = paragraph.AppendBookmarkStart("段落ブックマーク");
// 段落の最初に挿入
paragraph.Items.Insert(0, start);
// 段落の最後にブックマークの終了を追加
paragraph.AppendBookmarkEnd("段落ブックマーク");
// ファイルを保存
doc.SaveToFile("output/段落にブックマークを追加.docx", FileFormat.Docx2019);
// リソースを解放
doc.Dispose();
}
}
}
C# で段落内の特定のテキストにブックマークを追加する
特定のテキストにブックマークを追加するには、まず段落内のテキストとその位置を見つける必要があります。次に、テキストの前に BookmarkStart オブジェクトを、テキストの後ろに BookmarkEnd オブジェクトを挿入します。
Spire.Doc を使用して段落内の特定のテキストにブックマークを追加する手順は以下の通りです。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
- Document.FindAllString() メソッドを使用して文書からテキストを検索し、TextSelection.GetAsOneRange().OwnerParagraph プロパティを使用して、その段落内での位置を取得します。
- Paragraph.AppendBookmarkStart() メソッドを使用して BookmarkStart オブジェクトを作成します。
- 選択したテキストの前に BookmarkStart を挿入します。
- Paragraph.AppendBookmarkEnd() メソッドを使用して BookmarkEnd オブジェクトを作成します。
- 選択したテキストの後ろに BookmarkEnd オブジェクトを挿入します。
- Document.SaveToFile() メソッドを使用して文書を保存します。
- C#
using Spire.Doc;
using Spire.Doc.Documents;
namespace AddBookmarkToText
{
class Program
{
static void Main(string[] args)
{
// Documentオブジェクトを作成
Document doc = new Document();
// Wordファイルをロード
doc.LoadFromFile("Sample.docx");
// 検索する文字列を指定
string stringToFind = "不換紙幣";
// ドキュメントから選択されたテキストを検索
TextSelection[] finds = doc.FindAllString(stringToFind, false, true);
TextSelection specificText = finds[0];
// テキストがある段落を見つける
Paragraph para = specificText.GetAsOneRange().OwnerParagraph;
// 段落内のテキストのインデックスを取得
int index = para.ChildObjects.IndexOf(specificText.GetAsOneRange());
// ブックマークの開始を作成
BookmarkStart start = para.AppendBookmarkStart("テキストブックマーク");
// インデックス位置にブックマークの開始を挿入
para.ChildObjects.Insert(index, start);
// ブックマークの終了を作成
BookmarkEnd end = para.AppendBookmarkEnd("テキストブックマーク");
// 選択されたテキストの最後にブックマークの終了を挿入
para.ChildObjects.Insert(index + 2, end);
// ドキュメントを別のファイルに保存
doc.SaveToFile("output/ブックマークをテキストに追加.docx", FileFormat.Docx2019);
// リソースを解放
doc.Dispose();
}
}
}
C# で Word 文書からブックマークを削除する
Word 文書から特定のブックマークまたはすべてのブックマークを削除するには、Bookmarks.Remove() メソッドまたは Bookmarks.Clear() メソッドを使用します。詳細な手順は以下の通りです。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
- Document.Bookmarks[index] プロパティを使用して、文書内の特定のブックマークをインデックスで取得します。
- Bookmarks.Remove() メソッドを使用してブックマークを削除します。
- すべてのブックマークを一度に削除するには、Document.Bookmarks.Clear() メソッドを使用します。
- Document.SaveToFile() メソッドを使用して文書を保存します。
- C#
using Spire.Doc;
namespace RemoveBookmarks
{
class Program
{
static void Main(string[] args)
{
// Documentオブジェクトを作成
Document doc = new Document();
// Wordファイルをロード
doc.LoadFromFile("output/ブックマークをテキストに追加.docx");
// インデックスで特定のブックマークを取得
Bookmark bookmark = doc.Bookmarks[0];
// ブックマークを削除
doc.Bookmarks.Remove(bookmark);
// すべてのブックマークを一度に削除
// doc.Bookmarks.Clear();
// ドキュメントを保存
doc.SaveToFile("output/ブックマークを削除.docx", FileFormat.Docx2019);
// リソースを解放
doc.Dispose();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。