FindText.cs
//
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// © MESCIUS 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 DsPdfWeb.Demos
{
// このサンプルでは、BalancedColumns サンプルで作成された PDF ファイルが
// 読み込まれ、読み込まれたドキュメントの単語「雨」と「野菜」がすべて検出され、
// これら2つの単語が異なる色で強調表示されます。
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);
// すべての「雨」を検索します。
var findsLorem = doc.FindText(
new FindTextParams("雨", false, true),
OutputRange.All);
// すべての「野菜」を検索します。
var findsIpsum = doc.FindText(
new FindTextParams("野菜", false, true),
OutputRange.All);
// すべての「雨」を半透明のオレンジ色の赤を使用してハイライトします。
foreach (var find in findsLorem)
foreach (var ql in find.Bounds)
doc.Pages[find.PageIndex].Graphics.FillPolygon(ql, Color.FromArgb(100, Color.OrangeRed));
// すべての「野菜」を赤紫色の枠線で囲みます。
foreach (var find in findsIpsum)
foreach (var ql in find.Bounds)
doc.Pages[find.PageIndex].Graphics.DrawPolygon(ql, Color.MediumVioletRed);
// PDF ドキュメントを保存します。
doc.Save(stream);
return doc.Pages.Count;
}
}
}