【C#/VB.NET】PDFで特定のテキストを検索して強調表示する方法

PDF文書の作成や編集において、文書中の重要な文字、単語、文を特別な背景色で強調表示することで、読者が重要な内容を探しやすくし、読者の読書効率や閲覧体験を向上させることができます。この記事では、無料の[Free Spire.PDF for .NET](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-net.html)を使用して、プログラムを通じて**指定したテキストを検索し、ハイライト表示する方法**を説明します。
## 依存関係の追加
Free Spire.PDF for .NETの依存関係は、[公式ウェブサイト](https://jp.e-iceblue.com/download/free-spire-pdf-for-net.html)から手動でダウンロードするか、NuGet Package Manageで検索するか、パッケージマネージャーコンソールで次のコードを使用して追加することができます。
```
PM> Install-Package FreeSpire.PDF
```
## PDF文書内の特定のテキストを検索して強調表示する
**PdfTextFinder.Find()** メソッドで指定したテキストを探し、**PdfTextFragment.Highlight()** メソッドで探すテキストを強調表示すればいいのです。
&#160;&#160;&#160;&#160; **1.	PdfDocumentのオブジェクトを作成し、PDF文書を読み込みます。**

```
PdfDocument pdf = new PdfDocument(“サンプル.pdf”);
```

&#160;&#160;&#160;&#160; **2.	PdfTextFindOptionsのオブジェクトを作成します。**

```
PdfTextFindOptions findOptions = new PdfTextFindOptions();
```

&#160;&#160;&#160;&#160; **3.	テキスト検索のパラメーターを設定します。**
```
findOptions.Parameter = TextFindParameter.WholeWord;
```
&#160;&#160;&#160;&#160; **4.	PdfTextFinderのオブジェクトを作成します。**
```
PdfTextFinder finder = new PdfTextFinder(page);
```
&#160;&#160;&#160;&#160; **5.	テキスト検索のオプションを設定します。**
```
finder.Options = findOptions;
```
&#160;&#160;&#160;&#160; **6.	指定のテキストを検索します。**
```
List<PdfTextFragment> results = finder.Find("PostScript");
```
&#160;&#160;&#160;&#160; **7.	見つかった指定のテキストをすべて強調表示します。**
```
text.HighLight(Color.GreenYellow);
```
&#160;&#160;&#160;&#160; **8.	文書を保存します。**
```
pdf.SaveToFile("テキストの強調表示.pdf");
```
### 【完全なコード例】
**C#**
```c#
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Collections.Generic;
using System.Drawing;

namespace HighlightTextInPdf
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // PDFドキュメントを読み込む
            PdfDocument pdf = new PdfDocument("サンプル.pdf");

            //PdfTextFindOptionsのオブジェクトを作成する
            PdfTextFindOptions findOptions = new PdfTextFindOptions();
            //テキスト検索のパラメータを設定する
            findOptions.Parameter = TextFindParameter.WholeWord;

            //文書内のページをループする
            foreach (PdfPageBase page in pdf.Pages)
            {
                //PdfTextFinderのオブジェクトを作成する
                PdfTextFinder finder = new PdfTextFinder(page);
                //テキスト検索のオプションを設定する
                finder.Options = findOptions;
                //指定したテキストを検索する
                List<PdfTextFragment> results = finder.Find("PostScript");
                //指定したテキストをすべて強調表示する
                foreach (PdfTextFragment text in results)
                {
                    text.HighLight(Color.GreenYellow);
                }
            }

            //ドキュメントを保存する
            pdf.SaveToFile("テキストの強調表示.pdf");
        }
    }
}
```
**VB.NET**
```vb
Imports Spire.Pdf
Imports Spire.Pdf.Texts
Imports System.Collections.Generic
Imports System.Drawing

Namespace HighlightTextInPdf
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            'PDFドキュメントを読み込む
            Dim pdf As PdfDocument = New PdfDocument("サンプル.pdf")

            'PdfTextFindOptionsのオブジェクトを作成する
            Dim findOptions As PdfTextFindOptions = New PdfTextFindOptions()
            'テキスト検索のパラメータを設定する
            findOptions.Parameter = TextFindParameter.WholeWord

            '文書内のページをループする
            Dim page As PdfPageBase
            For Each page In pdf.Pages
                'PdfTextFinderのオブジェクトを作成する
                Dim finder As PdfTextFinder = New PdfTextFinder(page)
                'テキスト検索のオプションを設定する
                finder.Options = findOptions
                '指定したテキストを検索する
                Dim results As List<PdfTextFragment>=  finder.Find("PostScript") 
                '指定したテキストをすべて強調表示する
                Dim text As PdfTextFragment
                For Each text In results
                    text.HighLight(Color.GreenYellow)
                Next
            Next

            'ドキュメントを保存する
            pdf.SaveToFile("テキストの強調表示.pdf")
        End Sub
    End Class
End Namespace
```
### 【結果文書】
![PDF文書内の特定のテキストを検索して強調表示する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/4f1046f0-4d88-4fcc-ca7b-061abfeee82e.png)

> **これは、PDF文書内の特定のテキストを検索し、強調するためにフリーSpire.PDF for .NETを使用する方法についてのすべてです。 フリーSpire.PDF for NETは、他の多くのPDF処理機能を持ち、あなたはより多くを学ぶためにSpire.PDF for .NETチュートリアルに行くことができます。**

### 代表的な機能です：
[PDF文書をWord文書に変換する](https://jp.e-iceblue.com/tutorials/net/spire-pdf-net/pdf-net-conversion/c-how-to-convert-pdf-files-to-word-documents.html)
[PDF文書のページを回転させる](https://jp.e-iceblue.com/tutorials/java/spire-pdf-java/pdf-java-page-setting/java-rotate-pages-in-pdf.html)
[PDF文書から空白ページを削除する](https://jp.e-iceblue.com/tutorials/java/spire-pdf-java/pdf-java-page-setting/detect-and-remove-blank-pages-in-pdf-in-java.html)