Word ドキュメントのブックマークは、ページを移動することなく、ドキュメント内の特定の場所に移動することができます。これは、ドキュメントのセクション間の内部リンクと同じように機能します。ブックマークは、特に長い文書のナビゲーションに便利です。この記事では、Spire.Doc for C++ を使用して、C++ で Word ドキュメントにブックマークを追加または削除する方法を説明します。
Spire.Doc for C++ をインストールします
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
段落にブックマークを追加する
ブックマークは通常、段落全体に基づいて作成され、特に段落自体が見出しになっている場合は、そのようになります。以下は、Spire.Doc for C++ を使用して、段落にブックマークを追加する手順です。
- Document のオブジェクトを作成します。
- Document->LoadFromFile() メソッドを使用して、Word ファイルを読み込みます。
- Document->GetSections()->GetItem() メソッドを使用して、特定のセクションを取得します。
- Section->GetParagraphs()->GetItem() メソッドを使用して、セクションから特定の段落を取得します。
- Paragraph->GetChildObjects()->Insert(int index, Spire::Doc::IDocumentObject *entity) メソッドを使用して、BookmarkStart のオブジェクトを作成し、その段落の先頭に挿入します。
- Paragraph->AppendBookmarkEnd(LPCWSTR_S name) メソッドを使用して、段落の末尾に BookmarkEnd のオブジェクトを付加します。
- Document->SaveToFile() メソッドを使用して、ドキュメントを保存します。
- C++
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
int main() {
//Documentのオブジェクトを作成する
Document* document = new Document();
//Wordファイルを読み込む
document->LoadFromFile(L"C:/英語の問題.docx");
//特定の段落を取得する
Paragraph* paragraph = document->GetSections()->GetItem(0)->GetParagraphs()->GetItem(1);
//ブックマークの開始を作成する
BookmarkStart* start = new BookmarkStart(document, L"ブックマーク");
//選択したテキストの前にブックマークの開始を挿入する
paragraph->GetChildObjects()->Insert(0, start);
//段落の末尾にブックマークの末尾を挿入する
paragraph->AppendBookmarkEnd(L"ブックマーク");
//ドキュメントを保存する
document->SaveToFile(L"段落へのブックマーク追加.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
選択したテキストにブックマークを追加する
また、ブックマークは、段落内の特定の位置に挿入することもできます。以下は、Spire.Doc for C++ を使用して、選択したテキストにブックマークを追加する手順です。
- Document のオブジェクトを作成します。
- Document->LoadFromFile() メソッドを使用して、Word ファイルを読み込みます。
- Document->FindAllString() メソッドを使用して、ドキュメントから選択されたテキストを検索します。
- TextSelection-> ->GetAsOneRange()->GetOwnerParagraph() メソッドを使用して、テキストの所有者段落を検索します。
- Paragraph->GetChildObjects()->IndexOf() メソッドを使用して、その段落内のテキストのインデックスを取得します。
- BookmarkStart のオブジェクトを作成し、Paragraph->GetChildObjects()->Insert(int index, Spire::Doc::IDocumentObject *entity) メソッドを使用して選択したテキストの前に挿入します。
- BookmarkEnd のオブジェクトを作成し、Paragraph->GetChildObjects()->Insert(int index, Spire::Doc::IDocumentObject *entity) メソッドを使用して選択したテキストの後に挿入します。
- Document->SaveToFile() メソッドを使用して、ドキュメントを保存します。
- C++
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
using namespace std;
int main() {
//Documentのオブジェクトを作成する
Document* document = new Document();
//Wordファイルを読み込む
document->LoadFromFile(L"C:/英語の問題.docx");
//検索するテキストを指定する
wstring stringToFind = L"『タイムズ』紙";
//ドキュメントからテキストを検索する
vector<TextSelection*> finds = document->FindAllString(stringToFind.c_str(), false, true);
TextSelection* specificText = finds[0];
//テキストがある段落を探す
Paragraph* para = specificText->GetAsOneRange()->GetOwnerParagraph();
//段落内のテキストのインデックスを取得する
int index = para->GetChildObjects()->IndexOf(specificText->GetAsOneRange());
//ブックマークの開始を作成する
BookmarkStart* start = new BookmarkStart(document, L"ブックマーク");
//選択したテキストの前にブックマークの開始を挿入する
para->GetChildObjects()->Insert(index, start);
//ブックマークの末尾を作成する
BookmarkEnd* end = new BookmarkEnd(document, L"ブックマーク");
//選択したテキストの後にブックマークの末尾を挿入する
para->GetChildObjects()->Insert(index + 2, end);
//ドキュメントを保存する
document->SaveToFile(L"テキストへのブックマーク追加.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
Word ドキュメントからブックマークを削除する
Spire.Doc for C++ を使用すると、Word ドキュメントからすべてのブックマークまたは特定のブックマークを簡単に取得および削除することができます。以下はその詳細な手順です。
- Document のオブジェクトを作成します。
- Document->LoadFromFile() メソッドを使用して、ブックマークを含む Word ファイルを読み込みます。
- Document->GetBookmarks()->GetItem() メソッドを使用して、特定のブックマークを取得します。
- Document->GetBookmarks()->Remove() メソッドを使用して、ブックマークを削除します。4すべてのブックマークを一度に削除するには、Document->GetBookmarks()->Clear() メソッドを使用します。
- Document->SaveToFile() メソッドを使用して、ドキュメントを保存します。
- C++
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
int main() {
//Documentのオブジェクトを作成する
Document* document = new Document();
//Wordファイルを読み込む
document->LoadFromFile(L"段落へのブックマーク追加.docx");
//特定のブックマークをインデックスで取得する
Bookmark* bookmark = document->GetBookmarks()->GetItem(0);
//ブックマークを削除する
document->GetBookmarks()->Remove(bookmark);
//すべてのブックマークを削除する
//document->GetBookmarks()->Clear();
//ドキュメントを保存する
document->SaveToFile(L"ブックマークの削除.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。