FindText.cs
// 
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// Copyright (c) GrapeCity inc. All rights reserved.
// 
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Common;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;

namespace GcPdfWeb.Samples
{
    // このサンプルでは、BalancedColumns サンプルで作成された PDF ファイルが
    // 読み込まれ、読み込まれたドキュメントの単語「lorem」と「ipsum」がすべて検出され、
    // これら2つの単語が異なる色で強調表示されます。
    public class FindText
    {
        public void CreatePDF(Stream stream)
        {
            GcPdfDocument doc = new GcPdfDocument();
            // 読み込んだ PDF を操作している間は、元のファイルストリームを開いたままにしておく必要があります。詳しくは、LoadPDF を参照してください。
            using (var fs = new FileStream(Path.Combine("Resources", "PDFs", "BalancedColumns.pdf"), FileMode.Open, FileAccess.Read))
            {
                doc.Load(fs);
                // すべての「lorem」を検索します。
                var findsLorem = doc.FindText(
                    new FindTextParams("雨", false, true),
                    OutputRange.All);
                // すべての「ipsum」を検索します。
                var findsIpsum = doc.FindText(
                    new FindTextParams("野菜", false, true),
                    OutputRange.All);

                // すべての「lorem」を半透明のオレンジ色の赤を使用してハイライトします。
                foreach (var find in findsLorem)
                    doc.Pages[find.PageIndex].Graphics.FillPolygon(find.Bounds, Color.FromArgb(100, Color.OrangeRed));
                // すべての「ipsum」を赤紫色の枠線で囲みます。
                foreach (var find in findsIpsum)
                    doc.Pages[find.PageIndex].Graphics.DrawPolygon(find.Bounds, Color.MediumVioletRed);

                // PDF ドキュメントを保存します。
                doc.Save(stream);
            }
        }
    }
}