FindText.vb
- ''
- '' 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
-