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

'' このサンプルでは、BalancedColumns サンプルで作成された PDF ファイルが
'' 読み込まれ、読み込まれたドキュメントの単語「lorem」と「ipsum」がすべて検出され、
'' これら2つの単語が異なる色で強調表示されます。
Public Class FindText
    Function CreatePDF(ByVal stream As Stream) As Integer
        Dim doc = New GcPdfDocument()

        '' 読み込んだ PDF を操作している間は、元のファイルストリームを開いたままにしておく必要があります。詳しくは、LoadPDF を参照してください。
        Using fs = New FileStream(Path.Combine("Resources", "PDFs", "BalancedColumns.pdf"), FileMode.Open, FileAccess.Read)
            doc.Load(fs)
            '' すべての「lorem」を検索します。
            Dim findsLorem = doc.FindText(
                New FindTextParams("雨", True, False),
                OutputRange.All)
            '' すべての「ipsum」を検索します。
            Dim findsIpsum = doc.FindText(
                New FindTextParams("野菜", True, False),
                OutputRange.All)
            '' すべての「lorem」を半透明のオレンジ色の赤を使用してハイライトします。
            For Each find In findsLorem
                doc.Pages(find.PageIndex).Graphics.FillPolygon(find.Bounds, Color.FromArgb(100, Color.OrangeRed))
            Next
            '' すべての「ipsum」を赤紫色の枠線で囲みます。
            For Each find In findsIpsum
                doc.Pages(find.PageIndex).Graphics.DrawPolygon(find.Bounds, Color.MediumVioletRed)
            Next
            ''
            '' PDF ドキュメントを保存します。
            doc.Save(stream)
        End Using
        Return doc.Pages.Count
    End Function
End Class