AddCaretAnnotation.vb
''
'' This code is part of Document Solutions for PDF .NET demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Pdf.Annotations

'' This example shows how to create a caret annotation used to indicate a specific position in a text.
Public Class AddCaretAnnotation
    Public Function CreatePDF(ByVal stream As Stream) As Integer
        Using fs = File.OpenRead(Path.Combine("Resources", "PDFs", "Wetlands.pdf"))
            Dim doc = New GcPdfDocument()
            doc.Load(fs)

            For Each page In doc.Pages
                Dim tm = page.GetTextMap()
                ' insert the CaretAnnotation after "The Importance" text
                tm.FindText(New FindTextParams("wetlands", False, False),
                    Sub(fp_)
                        ' Add a CaretAnnotation near the found text:
                        Dim r = fp_.Bounds(0).ToRect()
                        Dim ca = New CaretAnnotation() With {
                            .Page = page,
                            .Rect = New RectangleF(r.Left - 8, r.Bottom - 16, 16, 16)
                        }
                    End Sub)
            Next
            ' Done:
            doc.Save(stream)
            Return doc.Pages.Count
        End Using
    End Function
End Class