''
'' This code is part of Document Solutions for PDF demos.
'' Copyright (c) MESCIUS 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
'' This sample loads the PDF file created by the BalancedColumns sample,
'' finds all occurrences of the words 'lorem' and 'ipsum' in the loaded document,
'' and highlights these two words using different colors.
Public Class FindText
Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
'' The original file stream must be kept open while working with the loaded PDF, see LoadPDF for details:
Using fs = New FileStream(Path.Combine("Resources", "PDFs", "BalancedColumns.pdf"), FileMode.Open, FileAccess.Read)
doc.Load(fs)
'' Find all 'lorem', using case-insensitive word search:
Dim findsLorem = doc.FindText(
New FindTextParams("lorem", True, False),
OutputRange.All)
'' Ditto for 'ipsum':
Dim findsIpsum = doc.FindText(
New FindTextParams("ipsum", True, False),
OutputRange.All)
'' Highlight all 'lorem' using semi-transparent orange red:
For Each find In findsLorem
For Each ql In find.Bounds
doc.Pages(find.PageIndex).Graphics.FillPolygon(ql, Color.FromArgb(100, Color.OrangeRed))
Next
Next
'' Put a violet red border around all 'ipsum':
For Each find In findsIpsum
For Each ql In find.Bounds
doc.Pages(find.PageIndex).Graphics.DrawPolygon(ql, Color.MediumVioletRed)
Next
Next
''
'' Done:
doc.Save(stream)
End Using
Return doc.Pages.Count
End Function
End Class