FindAndSquiggly.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 ドキュメント内のフレーズをすべて検索し、検索結果すべてを
'' テキストマークアップ注釈の波状下線を使用して強調表示する方法を紹介しています。
'' 単語が改行で区切られていても、フレーズ「javascript framework」がすべて検索できるように、
'' 検索文字列に正規表現を使用しています。
Public Class FindAndSquiggly
Public Function CreatePDF(stream As Stream) As Integer
'' PDF を読み込みます。
Dim doc As New GcPdfDocument()
Using fs = File.OpenRead(Path.Combine("Resources", "PDFs", "CompleteJavaScriptBook.pdf"))
doc.Load(fs)
'' 改行で区切られても検索できるように、正規表現を使用して
'' フレーズ「javascript framework」をすべて検索します。
Dim ft As New FindTextParams("javascript\s+framework", False, False, , , , True)
Dim found = doc.FindText(ft, Nothing)
'' テキストマークアップ注釈を追加し、検索結果すべてに波状下線を引きます。
For Each f In found
Dim markup As New TextMarkupAnnotation() With {
.Page = doc.Pages(f.PageIndex),
.MarkupType = TextMarkupType.Squiggly,
.Color = Color.Magenta
}
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