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

'' このサンプルでは、PDF ドキュメント内の単語をすべて検索し、検索結果すべてを
'' テキストマークアップ注釈のハイライトを使用して強調表示する方法を紹介しています。
Public Class FindAndHighlight
    Public Function CreatePDF(stream As Stream) As Integer
        '' PDF を読み込みます。
        Dim doc = New GcPdfDocument()
        Using fs = File.OpenRead(Path.Combine("Resources", "PDFs", "diodocs_flyer.pdf"))
            doc.Load(fs)

            '' 単語「.NET」をすべて検索します。
            Dim found = doc.FindText(New FindTextParams(".NET", True, False), Nothing)

            '' テキストマークアップ注釈を追加し、検索結果すべてをハイライトします。
            For Each f In found
                Dim markup = New TextMarkupAnnotation() With {
                    .Page = doc.Pages(f.PageIndex),
                    .MarkupType = TextMarkupType.Highlight,
                    .Color = Color.Yellow
                }
                Dim area As List(Of Quadrilateral) = New List(Of Quadrilateral)
                For Each b In f.Bounds
                    area.Add(b)
                Next
                markup.Area = area
            Next

            '' PDF ドキュメントを保存します。
            doc.Save(stream)
            Return doc.Pages.Count
        End Using
    End Function
End Class