FindText.cs
// 完毕:
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Common;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;

namespace DsPdfWeb.Demos
{
    // 此示例​​加载由BalancedColumns示例创建的PDF文件,
    // 查找加载文档中出现的所有单词“lorem”和“ipsum”,
    // 并使用不同的颜色突出显示这两个单词。
    public class FindText
    {
        public int CreatePDF(Stream stream)
        {
            // 在处理加载的PDF时,原始文件流必须保持打开状态,请参阅LoadPDF了解详细信息:
            using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "BalancedColumns.pdf"));
            var doc = new GcPdfDocument();
            doc.Load(fs);
            // 使用不区分大小写的单词搜索查找所有“lorem”:
            var findsLorem = doc.FindText(
                new FindTextParams("lorem", true, false),
                OutputRange.All);
            //  'ipsum' 同上:
            var findsIpsum = doc.FindText(
                new FindTextParams("ipsum", true, false),
                OutputRange.All);

            // 使用半透明橙红色突出显示所有“lorem”:
            foreach (var find in findsLorem)
                foreach (var ql in find.Bounds)
                    doc.Pages[find.PageIndex].Graphics.FillPolygon(ql, Color.FromArgb(100, Color.OrangeRed));
            // 在所有 'ipsum' 周围放置紫红色边框:
            foreach (var find in findsIpsum)
                foreach (var ql in find.Bounds)
                    doc.Pages[find.PageIndex].Graphics.DrawPolygon(ql, Color.MediumVioletRed);

            // 完毕:
            doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}