チュートリアル

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

チュートリアル».NET»Spire.PDF for .NET»テキスト»C#/VB.NET:PDF 内のテキストを検索してハイライトする方法
2023-06-13

C#/VB.NET:PDF 内のテキストを検索してハイライトする方法

PDF 文書では、テキストをハイライトすることで、読者に文書内の特定のコンテンツにもっと注意を向けさせることができます。キーワードや 文をハイライトすることで、読者に文書内の重要な情報を促し、読者がその情報を探してアクセスすることを容易にし、読書効率や読書体験を向上させることができるのです。この記事では、Spire.PDF for .NET を使用して、プログラムで PDF ドキュメント内の特定のテキストを検索してハイライトする方法を紹介します。

Spire.PDF for .NET をインストールします

まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

指定したテキストを検索してハイライトする

PdfTextFinder.Find() メソッドで指定したテキストを検索し、PdfTextFragment.Highlight() メソッドで検索したテキストを強調表示すればいいのです。 詳しい操作手順は以下の通りです。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して、PDF ドキュメントを読み込みます。
  • PdfTextFindOptions のオブジェクトを作成します。
  • PdfTextFindOptions.Parameter プロパティを通してテキスト検索のパラメータを設定します。
  • PDF ドキュメントのページをループして、指定されたテキストを検索し、ハイライト表示します。
  • PdfTextFinder のオブジェクトを作成し、PdfTextFinder.Parameter を通してテキスト検索のオプションを設定します。
  • PdfTextFinder.Find() メソッドを使用して、ドキュメント内の指定されたテキストを検索し、その結果を PdfTextFragment リストに保存します。
  • リストをループして PdfTextFragment.Highlight() メソッドを呼び出し、指定したテキストの出現箇所をすべてカラーで強調表示します。
  • PdfDocument.SaveToFile() メソッドを使用して、ドキュメントの結果を保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Collections.Generic;
using System.Drawing;

namespace HighlightTextInPdf
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentのオブジェクトを作成する
            PdfDocument pdf = new PdfDocument();
            //PDFドキュメントを読み込む
            pdf.LoadFromFile("C:/サンプル.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 results = finder.Find("時間を超越した宇宙");
                //指定したテキストをすべて強調表示する
                foreach (PdfTextFragment text in results)
                {
                    text.HighLight(Color.GreenYellow);
                }
            }

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

Namespace HighlightTextInPdf
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            'PdfDocumentのオブジェクトを作成する
            Dim pdf As PdfDocument = New PdfDocument()
            'PDFドキュメントを読み込む
            pdf.LoadFromFile("C:/サンプル.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=  finder.Find("時間を超越した宇宙") 
                '指定したテキストをすべて強調表示する
                Dim text As PdfTextFragment
                For Each text In results
                    text.HighLight(Color.GreenYellow)
                Next
            Next

            'ドキュメントを保存する
            pdf.SaveToFile("テキストの強調表示.pdf")
        End Sub
    End Class
End Namespace

***

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

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

Read 514 times