チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»C++»Spire.Doc for C++»テキスト»C++:Word 文書でテキストを検索して強調表示する方法
2023-05-31

C++:Word 文書でテキストを検索して強調表示する方法

大型文書において、特定の重要情報を素早く見つけるためには、検索機能が非常に有用です。同時に、明るい色でそれらを強調表示することは、読者の注意を引くために効果的な方法です。この記事では、Spire.Doc for C++ を使用して C++ で Word 文書でテキストを検索して強調表示する方法について説明します。

Spire.Doc for C++ をインストールします

Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。

Spire.Doc for C++ を C++ アプリケーションに統合する方法

Word 文書で特定のテキストのすべてのインスタンスを検索して強調表示する

Spire.Doc for C++ では、Document->FindAllString(LPCWSTR_S matchString, bool caseSensitive, bool wholeWord) メソッドを使用して、指定されたテキスト文字列のすべてのインスタンスを検索します。次に、これらのインスタンスをループして明るい色で強調表示することができます。以下は詳細な手順です。

  • Document インスタンスを作成します。
  • Document->LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document->FindAllString() メソッドを使用して、すべての一致するテキストを検索します。
  • すべての一致するテキストをループします。
  • TextSelection->GetAsOneRange() メソッドを使用して、そのテキストのテキスト範囲を取得します。
  • TextRange->GetCharacterFormat()->SetHighlightColor() メソッドを使用してハイライト色を設定します。
  • Document->SaveToFile() メソッドを使用して結果ドキュメントを保存します。
  • C++
#include "Spire.Doc.o.h"
#include <iostream>

using namespace Spire::Doc;
using namespace Spire::Common;

int main() {
	std::wstring inputFile = L"input.docx";
	std::wstring outputFile = L"FindAndHighlight.docx";

	//wordドキュメントを作成する
	intrusive_ptr<Document> document = new Document();

	//Word文書をディスクからロードする
	document->LoadFromFile(inputFile.c_str());

	//すべてのテキストを検索
	std::vector<intrusive_ptr<TextSelection>> textSelections = document->FindAllString(L"AI", false, true);

	//すべての一致するテキストをループし、ハイライト色を設定する
	for (auto selection : textSelections)
	{
		selection->GetAsOneRange()->GetCharacterFormat()->SetHighlightColor(Color::GetYellow());
	}

	//結果ドキュメントを保存する
	document->SaveToFile(outputFile.c_str(), FileFormat::Docx);
	document->Close();
}

C++:Word 文書でテキストを検索して強調表示する方法

Word 文書で特定のテキストの最初のインスタンスを検索して強調表示する

また、Document->FindString(LPCWSTR_S matchString, bool caseSensitive, bool wholeWord) メソッドを使用することで、指定したテキスト文字列の最初のインスタンスのみを検索し、そのハイライト色を設定することもできます。手順は以下の通りです。

  • Document インスタンスを作成します。
  • Document->LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document->FindString() メソッドを使用して、最初に一致するテキストを検索します。
  • TextSelection->GetAsOneRange() メソッドを使用してそのテキストのテキスト範囲を取得します。
  • 次に TextRange->GetCharacterFormat()->SetHighlightColor() メソッドを使用してハイライト色を設定します。
  • Document->SaveToFile() メソッドを使用して結果ドキュメントを保存します。
  • C++
#include "Spire.Doc.o.h"
#include <iostream>

using namespace Spire::Doc;
using namespace Spire::Common;

int main() {
    std::wstring inputFile = L"input.docx";
    std::wstring outputFile = L" FindAndHighlightFirst.docx";

    //wordドキュメントを作成する
    intrusive_ptr<Document> document = new Document();

    //Word文書をディスクからロードする
    document->LoadFromFile(inputFile.c_str());

    //最初に一致するテキストを検索する
    intrusive_ptr<TextSelection> textSelection = document->FindString(L"AI", false, true);

    //ハイライト色を設定する
    textSelection->GetAsOneRange()->GetCharacterFormat()->SetHighlightColor(Color::GetYellow());

    //結果ドキュメントを保存する
    document->SaveToFile(outputFile.c_str(), FileFormat::Docx);
    document->Close();
}

C++:Word 文書でテキストを検索して強調表示する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 615 times