FindText.vb
''
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © 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
'' このサンプルでは、BalancedColumns サンプルで作成された PDF ファイルが
'' 読み込まれ、読み込まれたドキュメントの単語「雨」と「野菜」がすべて検出され、
'' これら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)
'' すべての「雨」を検索します。
Dim findsLorem = doc.FindText(
New FindTextParams("雨", False, True),
OutputRange.All)
'' すべての「野菜」を検索します。
Dim findsIpsum = doc.FindText(
New FindTextParams("野菜", False, True),
OutputRange.All)
'' すべての「雨」を半透明のオレンジ色の赤を使用してハイライトします。
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
'' すべての「野菜」を赤紫色の枠線で囲みます。
For Each find In findsIpsum
For Each ql In find.Bounds
doc.Pages(find.PageIndex).Graphics.DrawPolygon(ql, Color.MediumVioletRed)
Next
Next
''
'' PDF ドキュメントを保存します。
doc.Save(stream)
End Using
Return doc.Pages.Count
End Function
End Class