C#でキーワードに基づいてPDFドキュメント内のテキストを検索し、テキストの背景色を設定する方法

PDFファイルを読んでいる時、コンテンツが多すぎて込んでいるため、閲覧したいコンテンツが簡単に見つからない場合はよくあります。こういう際は、PDF読み取りソフトの検索機能を使って、指定したテキストをすばやく見つけるのは一般的です。この記事では、C#と無料のSpire.PDFコンポーネントを使用してこの機能を実現する方法を紹介します。

 

まずはC#コンソールアプリケーションを作成し、NuGet Package ManagerでFree Spire.PDFを検索してインストールします、以下に示す通り:

f:id:uha_noki:20220107110941p:plain

インストールした後、Free Spire.PDF dllはプロジェクトに自動的に参照されます。次は実現するために具体的な手順です。

 

手順1 PDFドキュメントをロードする

PdfDocument pdf = new PdfDocument();

pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");

手順2 キーワードに基づいてPDFページで一致するテキストを検索し、該当する各テキストの背景色を設定する

PdfTextFind AllMatchedText = null;

//全てのページをトラバースする

foreach (PdfPageBase page in pdf.Pages)

{

    AllMatchedText = page.FindText("コーギー").Finds;

    foreach (PdfTextFind text in AllMatchedText)

    {

        //デフォルトの背景色を黄色に設定する

text.ApplyHighLight();

    }

}

ApplyHighLight()メソッドは、デフォルトで背景色を黄色に設定します。色をカスタマイズする必要がある場合は、次のメソッドを使用します。

text.ApplyHighLight(Color.Green);

手順3 ドキュメントを保存する

pdf.SaveToFile("FindAndHighlight.pdf");

操作した効果は以下のようになります:

f:id:uha_noki:20220107111455p:plain

完全なるコード:

using Spire.Pdf;

using Spire.Pdf.General.Find;

 

namespace FindText

{

    class Program

    {

        static void Main(string args)

        {

            PdfDocument pdf = new PdfDocument();

            pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");

 

            PdfTextFind[] AllMatchedText = null;

 

            foreach (PdfPageBase page in pdf.Pages)

            {

                AllMatchedText = page.FindText("コーギー").Finds;

                foreach (PdfTextFind text in AllMatchedText)

                {

                    text.ApplyHighLight();//デフォルトの背景色を黄色に設定する

                               //text.ApplyHighLight(Color.Green); //カスタム背景色を設定する

                }

            }

            pdf.SaveToFile("FindAndHighlight.pdf");

        }

    }

}

以上は今回のPDFテキスト検索および背景色の設定方法でした、最後まで読んでいただきありがとうございます。ではまた!